div中有多个对象。我想通过他们的班级得到所有这些元素的id。元素的数量可以变化。我这样做是为了
arr= $(".listitem #checkBox").hasClass('checkedItem').attr('id');
但它只返回第一项
如果我用它
arr= $(".listitem #checkBox").hasClass('checkedItem').map(function() {
return this.id;
}).get();
控制台上的错误是Object true has no method 'map'
我如何获得所有 CheckedItems
的ID答案 0 :(得分:2)
.hasClass()
method返回一个布尔值,指示jQuery对象中的任何元素是否具有该类,并且布尔值没有.map()
方法。
相反,使类成为选择器的一部分,以便jQuery对象只包含该类的元素:
arr= $(".listitem #checkBox .checkedItem").map(function() {
return this.id;
}).get();
请注意,原始选择器".listitem #checkBox"
应该只匹配一个或零个元素,因为id应该是唯一的。出于这个原因,我假设您正在尝试检查#checkBox
的后代元素。让我知道你的HTML的结构,我可以调整选择器以匹配...
答案 1 :(得分:2)
这里的问题是您尝试查询多个项目,但是您正在使用ID进行查找。
arr= $(".listitem #checkBox")....
(#checkBox
部分)
此代码永远不会返回数组。
答案 2 :(得分:0)
使用此功能,您将获得所有的checkitems ID
var selected = new Array();
$('#checkbox input:checked').hasClass('checkedItem').each(function() {
selected.push($(this).attr('id'));
});