-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

これを試して:

//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 に答える
1

これをやりたかったのですか?

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

$(".array").text(dataArr.join(","));
于 2013-07-13T19:23:19.767 に答える