我正在尝试从具有相同类的多个div中获取data
元素。这是我到目前为止的代码:
var dataArr = new Array();
$(".foo").each(function(){
for (i = 0; i < $(".foo").length; i++) {
dataArr[i] = $(this).attr("data");
}
});
$(".array").text(dataArr);
此代码的问题在于,当您运行它时,它仅在数组的每个索引上存储最后data
。我有一个jsfiddle来证明我正在尝试做什么。 http://jsfiddle.net/AzRp2/
答案 0 :(得分:4)
为什么你在for
循环中有each
循环....你根本就不需要使用循环...使用map()
... 正确的方法使用HTML5数据属性为data-something
..您可以使用data()
来获取该值,而不是attr()
;
<强> HTML 强>
<div class="foo" data-test="111"> Hello </div>
<div class="foo" data-test="222"> World </div>
<div class="array"></div>
<强> jquery的强>
var dataArr =$(".foo").map(function(i,v){
return $(this).data("test");
}).get();
$(".array").text(dataArr);
答案 1 :(得分:1)
试试这个:
//Create an empty array
var dataArr = [];
// Loop through all the div's
$(".foo").each(function (index) {
// Push the data into the array
dataArr.push($(this).attr("data"));
});
// open console to see the array
console.log(dataArr);
答案 2 :(得分:1)
你想这样做吗?
var dataArr = new Array();
$(".foo").each(function () {
dataArr.push($(this).attr("data"));
});
$(".array").text(dataArr.join(","));