如何从共享属性的jQuery集合中获取属性数组?

时间:2014-07-28 05:49:30

标签: javascript jquery html dom

如果我有这个:

 <input type="checkbox" class="tag" data-tag-id="1" checked="checked">
 <input type="checkbox" class="tag" data-tag-id="2">
 <input type="checkbox" class="tag" data-tag-id="3" checked="checked">
 <input type="checkbox" class="tag" data-tag-id="4" checked="checked">

我知道如何获取所有选中的复选框:

 $(".tag:checked");

以上返回三个DOM对象:

 [{checkbox object}, {checkbox object}, {checkbox object}]

我的问题是:如何获取data-tag-id的集合?我想通过一个查询得到这个:

 [1, 3, 4]

这不能完成这项工作:

 $(".tag:checked").data("tag-id")


我搜索了很多,但大多数谷歌搜索结果:&#34;如何选择多个数据属性&#34; ,这是另一回事,即:$("[data-bar=...][data-foo=...]")

2 个答案:

答案 0 :(得分:0)

您可以使用.map()并生成一个 tag-id 数组。

var arr =  $(".tag:checked").map(function(){
    return $(this).data("tag-id")
}).get();
console.log(arr);

DEMO

答案 1 :(得分:0)

您可以初始化数组并遍历已检查的项目..

var dataArray = [];
$( ".tag:checked" ).each(function(){
    dataArray.push( $(this).attr( "data-tag-id" ) );
});