0

一个 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

4

3 回答 3

2

.hasClass()方法返回一个布尔值,指示 jQuery 对象中的任何元素是否具有该类,而布尔值没有.map()方法。

相反,使类成为选择器的一部分,以便 jQuery 对象仅包含具有该类的元素:

arr= $(".listitem #checkBox .checkedItem").map(function() {
     return this.id;
}).get();

请注意,您的原始选择器".listitem #checkBox"应该只匹配一个或零个元素,因为 id 应该是唯一的。出于这个原因,我在上面假设您正在尝试检查属于#checkBox. 让我知道您的 html 的结构,我可以调整选择器以匹配...

于 2012-08-31T06:45:25.320 回答
2

这里的问题是您正在尝试查询多个项目,但您正在使用 ID 进行查找。

arr= $(".listitem #checkBox")....

#checkBox部分)

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

HTML 4.01 的 ID 属性规范

于 2012-08-31T06:46:30.493 回答
0

使用它,您将获得所有已检查项目的 id

var selected = new Array();
$('#checkbox input:checked').hasClass('checkedItem').each(function() {
    selected.push($(this).attr('id'));
});
于 2012-08-31T06:49:35.870 回答