我需要将添加到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
10-07 21:16