在 IE8 中查找复选框时,我的代码有什么区别?

What is the differece between my codes when find checkbox in IE8?

我有树型复选框,class 在我的网格中被命名为 checkAll,checkRow,checkCell。当我单击 checkAll 复选框时,所有复选框都将是 checked.When 我单击 checkRow 复选框时,将选中该行中的复选框。现在我使用相同的代码创建 checkAll,checkRow 事件,我发现 checkAll 事件运行良好,但在 checkRow 事件中它是错误的。它说 Jscript 错误。我尝试使用 jQuery 方式更改它并且效果很好。在 IE8 中找到复选框时,我的代码有什么区别?

第一种方式:checkAll 可以,checkRow 不行

$("#checkAll").on("click", function (e) {
    var target = $(e.target), item, checked = target.prop("checked"),
    checkboxes = $("#Grid input");
    checkboxes.each(function (i, v) {
        item = $(v);
        if(!item.prop("disabled"))
            item.prop("checked", checked);
    });
});

$("#Grid").on("click", ".checkRow", function (e) {
    var target = $(e.target), checked = target.prop("checked"),
    td = target.parent("td"), tr = td.parent("tr"),
    checkboxes = tr.find("input[class!='checkRow']");
    checkboxes.each(function (i, v) {
        item = $(v); //in this row Jscript error,wrong property in IE8,but firfox work well
        item.prop("checked", checked);
    });
});

checkrow 事件中的第二种方式并且效果很好

$("#Grid").on("click", ".checkRow", function (e) {
    var target = $(e.target), checked = target.prop("checked"),
    td = target.parent("td"), tr = td.parent("tr"),
    checkboxes = tr.find("input[class!='checkRow']");
    checkboxes.prop("checked", checked);//work well
});

在第一种方式的checkRow事件中,你的名为 item 的变量不能declare.Sofirefox 工作正常但 IE8 不能工作。