获取数组中多个html对象的id

时间:2012-08-31 06:42:21

标签: javascript jquery html

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

3 个答案:

答案 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部分)

此代码永远不会返回数组。

ID Attribute spec for HTML 4.01

答案 2 :(得分:0)

使用此功能,您将获得所有的checkitems ID

var selected = new Array();
$('#checkbox input:checked').hasClass('checkedItem').each(function() {
    selected.push($(this).attr('id'));
});