用于禁用按钮的Javascript在IE 9中不起作用

时间:2011-11-10 21:35:25

标签: javascript button internet-explorer-9

所以我正在编写一个用于更新和显示数据库表的界面,客户端显示的每一行(使用DataTables)都有一个“编辑”和“删除”按钮。每次单击单行的“编辑”时,其他行中的所有“编辑”和“删除”按钮都将被禁用。这是我用来执行此操作的Javascript代码:

        var editButtons = document.getElementsByName("EditRow");
        var deleteButtons = document.getElementsByName("DeleteRow");

        for (i in editButtons) {
            editButtons[i].disabled = true;
        }

        for (i in deleteButtons) {
            deleteButtons[i].disabled = true;
        }

这适用于Chrome和Firefox,但是当我在IE9中试用它时,它不会禁用任何内容。我已经尝试了很多东西来解决这个问题,包括使用jQuery抓取DOM对象,但没有任何工作。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

document.getElementsByName返回node list,类似于数组。你应该这样对待它:

var elements = document.getElementsByName('something'),
    len = elements.length; 
for (var i = 0; i < len; i++) {
    elements[i].disabled = true;
}

答案 1 :(得分:2)

您的示例在IE9中不起作用,但这样做:

Array.prototype.forEach.call(document.getElementsByName('EditRow'), function(el){
    el.disabled = true;
});