使用JavaScript 时遇到一个问题, checkbox 用的是iCheck: $("input[name='compenent']").on('ifChecked ifUnchecked', function (event) {
var $icheck = $(this);
//onCheckCompenent(event, $icheck);
var checkComp = $icheck;
//var checkboxes = checkComp.find("input[name='node']");
var checkboxes = $icheck.find('input.check');
alert(checkboxes.length); if (event.type == 'ifChecked') {
checkboxes.iCheck('check');
} else {
checkboxes.iCheck('uncheck');
} checkboxes.on('ifChanged', function (event) {
if (checkboxes.filter(':checked').length == checkboxes.length) {
checkComp.prop('checked', 'checked');
} else {
checkComp.removeProp('checked');
}
checkComp.iCheck('update');
});这段代码运行时发现 checkboxes.length = 0. 如何才能获取compenent 下面所有的checkbox?
为什么会这样,卡住我了。
<li>
<input type="checkbox" class="check" name="compenent" />System Component
<ul class="dropdown ">
<li>
<input type="checkbox" class="check" name="node" />CPU Info
<ul class="dropdown \">
<li>
<input type="checkbox" class="check" name="param" />Processor
</li>
</ul>
</li>
<li>
<input type="checkbox" class="check" name="node" />Memory Info
<ul class="dropdown ">
<li>
<input type="checkbox" class="check" name="param" />Memory Size
</li>
</ul>
</li>
</ul>
</li>
var $icheck = $(this);
//onCheckCompenent(event, $icheck);
var checkComp = $icheck;
//var checkboxes = checkComp.find("input[name='node']");
var checkboxes = $icheck.find('input.check');
alert(checkboxes.length); if (event.type == 'ifChecked') {
checkboxes.iCheck('check');
} else {
checkboxes.iCheck('uncheck');
} checkboxes.on('ifChanged', function (event) {
if (checkboxes.filter(':checked').length == checkboxes.length) {
checkComp.prop('checked', 'checked');
} else {
checkComp.removeProp('checked');
}
checkComp.iCheck('update');
});这段代码运行时发现 checkboxes.length = 0. 如何才能获取compenent 下面所有的checkbox?
为什么会这样,卡住我了。
<li>
<input type="checkbox" class="check" name="compenent" />System Component
<ul class="dropdown ">
<li>
<input type="checkbox" class="check" name="node" />CPU Info
<ul class="dropdown \">
<li>
<input type="checkbox" class="check" name="param" />Processor
</li>
</ul>
</li>
<li>
<input type="checkbox" class="check" name="node" />Memory Info
<ul class="dropdown ">
<li>
<input type="checkbox" class="check" name="param" />Memory Size
</li>
</ul>
</li>
</ul>
</li>
你要获取的是input元素下面兄弟元素ul中的子元素吧。
$icheck.next("ul.dropdown").find('input.check');
alert(checkboxes.length);