我试图通过比较两个数组来检查页面上的复选框。如果两个数组中都存在值,则选中其id与匹配值相同的复选框。 (该数组包含Checkbox元素的Id。) 即使复选框的检查中存在该值也不起作用。
以下是jsfiddle与HTML和jquery
的链接答案 0 :(得分:1)
首先它应该是$('.divPrintDetailed table')
而不是$(#divPrintDetailed table')
,并且在idArray
第一个参数中迭代是索引,第二个是元素。
JS: -
function CheckboxSelect() {
var idArray = [];
var idContainerArray = [];
idContainerArray[0] = "tbl-10-486011";
idContainerArray[1] = "tbl-10-486013";
idContainerArray[2] = "tbl-10-486016";
$('.divPrintDetailed table').each(function (i, e) {
idArray.push($(e).attr('id'));
});
//alert(idArray.length);
$.each(idArray, function (index, el) {
alert(el.slice(4));
if ($.inArray(el, idContainerArray) != -1) {
$('#' + el.slice(4)).prop("checked", "checked");
}
});
}
$('#btnSubmit').click(function () {
CheckboxSelect();
});
<强> HTML: - 强>
<div class="divPrintDetailed">
<table id="tbl-10-486011" data-ordernum="0">
<tr> <td>
<input class="containerToCopy" id="10-486011" type="checkbox"> </td> </tr>
</table>
<table id="tbl-10-486012" data-ordernum="1">
<tr> <td> <input class="containerToCopy" id="10-486012" type="checkbox"> </td> </tr>
</table>
<table id="tbl-10-486013" data-ordernum="2">
<tr> <td> <input class="containerToCopy" id="10-486013" type="checkbox"> </td> </tr>
</table>
<table id="tbl-10-486014" data-ordernum="3">
<tr> <td> <input class="containerToCopy" id="10-486014" type="checkbox"> </td> </tr>
</table>
<table id="tbl-10-486015" data-ordernum="4">
<tr> <td> <input class="containerToCopy" id="10-486015" type="checkbox"> </td> </tr>
</table>
<table id="tbl-10-486016" data-ordernum="5">
<tr> <td> <input class="containerToCopy" id="10-486016" type="checkbox"> </td> </tr>
</table>
</div>
<button type="button" id="btnSubmit" >Click Me!</button>