我的页面上有多个复选框并使用javascript我想找到所有复选框并按如下方式将其各自的名称推送到数组中:
var Names = new Array();
$.each($(':checked'), function (key, value) {
Name.push($(value).attr("name"));
});
上述代码有什么问题?
答案 0 :(得分:3)
更“实用”的方式:
var names = $('input[type="checkbox"]:checked').map(function() {
return this.name;
}).get();
或者最好不要使用:checked
伪选择器,以便jQuery可以更好地利用浏览器功能:
var names = $('input[type="checkbox"]').map(function() {
if(this.selected) {
return this.name;
}
return null;
}).get();
答案 1 :(得分:1)
var Names = new Array();
$(':checkbox:checked').each( function (key, value) {
Name.push($(value).attr("name"));
});
甚至更容易:
var Names = new Array();
$(':checkbox:checked').each( function () {
Name.push( $( this ).attr( "name" ) );
});
答案 2 :(得分:1)
您不能只通过伪元素选择::checked
。您必须选择所有已检查的<input type="checkbox">
元素:
var Names = new Array();
$.each($('input[type="checkbox"]:checked'), function (key, value) {
Name.push($(value).attr("name"));
});
答案 3 :(得分:0)
var Names = new Array();
$.each($('input:checked'), function (key, value) {
Names.push($(value).attr("name"));
});
你正在使用名字和名字 - 2个不同的呃......名字
答案 4 :(得分:0)
这正是jQuery map函数的原因。
var Names = $(':checkbox:checked').map(function (value) {
return value.name;
});