-1

我正在尝试data从具有相同类的多个 div 中获取元素。这是我到目前为止得到的代码:

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/

4

3 回答 3

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);

在这里摆弄

于 2013-07-13T19:25:39.750 回答
1

你想这样做吗?

var dataArr = new Array();
$(".foo").each(function () {
    dataArr.push($(this).attr("data"));
});

$(".array").text(dataArr.join(","));
于 2013-07-13T19:23:19.767 回答
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);
于 2013-07-13T19:21:40.950 回答