很成功地延伸Element
S,例如,如何擴展dom中的堆棧元素?
Element.prototype.ancestorByTagName = function(tagName) { ... }
但不能弄清楚如何具體地延長Select
元件
例如,每個以下的失敗:
Select.prototype.appendOption = function(value, label, select_value) { ... }
Element.Select.prototype.appendOption = function(value, label, select_value) { ... }
上午在虧損。
在這種情況下是有道理的新方法appendOption
它限制在Select
對所有Element
S,因爲只有Select
可以有Option
孩子。 Select
的add
方法也很蹩腳。
您定位了哪個瀏覽器?期望所有瀏覽器都實現相同的繼承模型或任何繼承模型,這有點雄心勃勃。你有沒有讀過Kangax's *擴展DOM *有什麼問題?(http://perfectionkills.com/whats-wrong-with-extending-the-dom/)? – RobG 2011-04-19 09:47:41
有趣。 http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-94282980 – mplungjan 2011-04-19 09:51:29
@RobG - 在Chrome之後,也許在Firefox稍後。絕對同意延長dom的危險 - 大部分時間使用命名構造來隔離工作。在這種情況下,我的一個智力練習,填補我認爲是非常基本的dom功能 – 2011-04-19 09:56:29