2

是否可以扩展原生 HTML 表格?

C# 示例:public class: htmltable{}

或类似的东西:

HTMLTable.prototype.myType=function(){
 this.clss='myClass';
 this.setAttribute('class',this.clss);
}
4

2 回答 2

3

如果浏览器已经为 DOM 元素实现了继承方案,您通常可以根据该方案扩展它们。大多数现代浏览器都实现了与 ECMA-262 一致的原型继承,不要使用它,因为:

  1. 用户代理不需要实现继承,许多(大多数?)不需要。请注意,除了浏览器之外,还有许多用户代理
  2. 即使浏览器确实实现了继承,也不需要它与 ECMA-262 一致(尽管这样做是明智的)
  3. 您的扩展可能会与某些或所有浏览器中当前或未来的主机对象扩展发生冲突

Prototype.js 在支持它的 UA 中使用 DOM 元素继承,并在不支持的地方使用“扩展”DOM 元素本身的后备。由于上述原因,它最近放弃了该策略。它也容易出错且速度慢。

于 2012-04-13T06:03:52.660 回答
0

我正在构建一个高程的在线 cad 程序。立面具有包含门、窗和水平线的隔间,这些隔间将隔间分开。使用表格非常适合这种情况,“直到浏览器开始实现工作人员和本地存储以及画布”。

我正在使用一个数组来存储每个托架,即:暗淡、水平计数、门或窗计数。因此,当调整大小或发生某些事情时,如果需要,我必须遍历托架数组并重置它们的所有属性。然后我必须更新实际的 td 才能查看。基本上,我在核心中更新它并将其传递回 UI,它会执行更新信息所需的任何操作。

我只是确保我无法扩展 htmltd,然后才走得更远。我在想取消数组会很好,也许这也不是最好的方法,但看起来我永远不会知道。;)

像下面的代码是我所追求的。

this.myWidth;

var bays = this.rows[0].cells, len=bays.length, bay;
for(i=0; i< len;i++){

    this.myWidth = someThingCalculated from a parameter;
    bay = bays[i];
    bay.style.width= ((this.myWidth / elevationWidth) * 100)) + %;
};
于 2012-04-13T19:33:45.317 回答