获取带有多个div的.attr()

时间:2013-07-13 19:19:42

标签: javascript jquery

我正在尝试从具有相同类的多个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/

3 个答案:

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

fiddle here

答案 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(","));