gpt4 book ai didi

javascript - 扩展 DOM 而不是元素原型(prototype)......可能吗?

转载 作者:行者123 更新时间:2023-11-30 18:25:54 25 4
gpt4 key购买 nike

如果你想在 DOM 中扩展一些组或类,但我不想扩展所有元素。有可能吗?

例如:

document.getElementsByClass('extended').myMethod(); // working

但是

document.getElementById('elementNotExtendedClass').myMethod(); // shouldnt be working

因为我不想弄乱所有元素,只想弄乱选定的元素。也许应该通过在文档中创建我自己的 createElement() 方法版本来以某种方式完成。例如 document.CreateMyElement()。

或者有什么想法?谢谢

6 月 6 日编辑:我正在寻找原型(prototype)链保持工作的解决方案,这样我就可以立即更改一些共享的方法和属性。

最佳答案

为什么不将方法添加到每个实例 ( fiddle )

function test() {
this.style.fontWeight = "bold";
}

window.onload = function(){
// add your method to existing elements with class 'extended'
var elements = document.getElementsByClassName('extended');
for (var i = 0; i < elements.length; i++){
elements[i].test = test;
}
// just to visualize what happened...
var spans = document.getElementsByTagName("span");
alert("span[0].test: " + typeof spans[0].test
+"\nspan[1].test: " + typeof spans[1].test);
spans[0].test();
};

关于javascript - 扩展 DOM 而不是元素原型(prototype)......可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com