我需要将添加到DOM的所有类“坏”复选框,以获取“已禁用”属性。外部代码添加了复选框,所以当复选框自己插入DOM时,我无法添加Disabled属性。
我怎样才能做到这一点?
更新:我不知道何时添加这些复选框。情况非常复杂。
最佳答案
****更新的代码****-请参阅底部的注释。
这里建议的DOMNodeInserted事件不是跨浏览器,它在ie
一个简单的跨浏览器解决方案是设置一个间隔,该间隔每100ms检查一次,是否禁用了类名为“bad”的所有复选框元素:
function CheckBadCheckboxes()
{
var elems = document.getElementsByTagName("input");
for (var i = 0; i < elems.length; i++) {
if (elems[i].type == "checkbox" && /\b(bad)\b/i.test(elems[i].className) && !elems[i].disabled) {
elems[i].disabled = true;
}
}
}
window.setInterval(CheckBadCheckboxes, 100);
此代码不需要您使用jQuery。
DOMNodeInserted还有另一个参数,它已被弃用并降低了网页的性能。 PetersenDidIt在这里的评论中对此进行了解释:
DOMNodeInserted equivalent in IE?
DOMNodeInserted的错误行为:
http://help.dottoro.com/ljmcxjla.php
更新。
我已经更新了代码,之前我使用的是getElementsByClassName(),不幸的是IE