Javascript 选择全部选中复选框将返回全部复选框,而不是使用JQuery
这是我的密码Javascript 选择全部选中复选框将返回全部复选框,而不是使用JQuery,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,这是我的密码 JS文件 $( document ).ready(function() { $(".test").children().filter(function(index, elem){ console.log($(elem).children(":checked")); }); }) HTML <ul class="test"> <li><input type="checkbox" name="1"><lab
JS文件
$( document ).ready(function() {
$(".test").children().filter(function(index, elem){
console.log($(elem).children(":checked"));
});
})
HTML
<ul class="test">
<li><input type="checkbox" name="1"><label>something</label></li>
<li><input type="checkbox" name="2"><label>something</label></li>
<li><input type="checkbox" name="3"><label>something</label></li>
<li><input type="checkbox" name="4" checked><label>something</label></li>
</ul>
- 某物
- 某物
- 某物
- 某物
我试图选中所有选中的复选框,但如果我按:checked
进行筛选,我将改为选中所有复选框
我做错了什么?要选择选中的输入,只需使用:
var checked=$(“输入:选中”)代码>
见
如果必须仅限于该ul
内的输入,您还可以指定类别:
var checked=$(“.test输入:checked”)代码>
见此。要选择选中的输入,只需使用:
var checked=$(“输入:选中”)代码>
见
如果必须仅限于该ul
内的输入,您还可以指定类别:
var checked=$(“.test输入:checked”)代码>
请看这个。更准确地说
var allChecked = $('.test input[type="checkbox"]:checked');
让您在具有类test
的元素的子元素下选中所有复选框,并测试是否选中复选框,您可以使用
var bool = $(selector).is(":checked");
// return true if checked false if not
//where selector can be any jQuery selector
更准确地说
var allChecked = $('.test input[type="checkbox"]:checked');
让您在具有类test
的元素的子元素下选中所有复选框,并测试是否选中复选框,您可以使用
var bool = $(selector).is(":checked");
// return true if checked false if not
//where selector can be any jQuery selector
其他答案建议了更好的方法来选择您想要的复选框,我同意这些方法更直截了当,比您的过滤方法更可取,但在这里,我试图解释您在代码中实际看到的内容
转到你的小提琴并在Chrome调试器中运行它,看起来它做了正确的事情,而且由于console.log()的行为,你可能根本看不到你所期望的
我将您的console.log行拆分为两个单独的步骤-获取与匹配的子项(ren):选中选择器,然后记录该变量;所以它看起来像:
$( document ).ready(function() {
$(".test").children().filter(function(index, elem) {
//console.log($(elem).children(":checked"));
boxen = $(elem).children(":checked");
debugger;
console.log(boxen);
});
})
这将循环调用filter()函数四次-每个最初选择的$(“.test”).children()元素一次。在第一次调用时,索引将是0
(零),elem将是第一个
元素。
调用boxen=$(elem).children(“:checked”)代码>将为您提供[]
。。。也就是说,一个空数组,因为没有检查第一个li的子元素。
然而,当您console.log(boxen)
时,它会给您一些“奇怪”的输出,因为这是jQuery。。。它不是一个简单的javascript数组
当您进入第四次迭代时,查看第四个选定元素,索引将是3
,elem将是第四个
当你在那一个上$(elem).children(“:checked”)
时,你会得到类似[]代码>(您如何看待它将在一定程度上取决于您的javascript调试器)-因此,这次它选择了一个选中的输入元素
如果在变量中选择.children(“:checked”)
,您确实得到了所需的复选框,但是控制台.log()
输出欺骗了您。其他答案建议了更好的方法来选择您想要的复选框,我同意这些方法更直截了当,比您的过滤方法更可取,但这里我试图解释您在代码中实际看到的内容
转到你的小提琴并在Chrome调试器中运行它,看起来它做了正确的事情,而且由于console.log()的行为,你可能根本看不到你所期望的
我将您的console.log行拆分为两个单独的步骤-获取与:checked
选择器匹配的子项(ren),然后记录该变量;这样看起来:
$( document ).ready(function() {
$(".test").children().filter(function(index, elem) {
//console.log($(elem).children(":checked"));
boxen = $(elem).children(":checked");
debugger;
console.log(boxen);
});
})
这将循环调用filter()函数四次-对于最初选择的$(“.test”).children()
元素各一次。在第一次调用时,索引将为0
(零),elem将是第一个
元素。
调用boxen=$(elem).children(“:checked”);
将为您提供[]
…也就是说,一个空数组,因为第一个li的子元素都没有被检查。
但是,当您console.log(boxen)
时,它会给您一些“奇怪”的输出,因为这是jQuery…它不是一个普通的javascript数组
当您进入第四次迭代时,查看第四个选定元素,索引将是3
,elem将是第四个
当你在那一个上$(elem).children(“:checked”)
时,你会得到类似[]代码>(您如何看待它将在一定程度上取决于您的javascript调试器)-因此,这次它选择了一个选中的输入元素
如果您在变量中选择.children(“:checked”)
,您确实得到了所需的一个复选框,但是控制台.log()
输出欺骗了您。我还有其他复选框不在class=“test”
$(“.test input:checked”)下
将返回null我不确定您看到的结果是什么。请查看我发布的额外链接-它会按预期返回选中的输入。我有其他复选框不在class=“test”
$(“.test input:checked”)下
将返回空值。我不确定您看到的是什么结果。请查看我发布的额外链接-它按预期返回选中的输入。