我试图收集一些对象(在我的情况下是复选框),然后从中获取css类。
到目前为止,我可以获得这样的对象集合 $(':检查&#39)
如果我打电话
$(':checked').first().attr('class')
返回类似
的内容"my-class"
我想对这个对象的集合做这个,但是当我尝试这样的东西时,我回来的只是一个空数组。
var classes = $(':checked').map(function(obj) {
$(obj).attr('class')
})
答案 0 :(得分:1)
您需要在 map()
回调函数中返回值并使用 get()
或 toArray()
for get result as a array。
更新:另外在回调函数中,第一个参数是指索引而不是dom对象。因此,您需要使用this
或第二个参数。
var classes = checked.map(function() {
return $(this).attr('class');
//-^--
}).get();
或
var classes = $(':checked').map(function(i,obj) {
// --^--
return $(obj).attr('class')
}).get()
答案 1 :(得分:0)
在# id first
# 1: 1 3
# 2: 2 2
# 3: 5 3
处理程序中进行少量更改,如下所示:
我为您创建了一个示例代码段。
click
$(document).ready(function(){
$(".btn").click(function(){
var checked = $(":checked");
var classes = checked.map(function(obj) {
return $(this).attr('class'); // refers to each checked element
}).get(); // returns an array of the above map
console.log(classes);
});
});