获取所有匹配元素的数据属性?

时间:2015-02-26 19:24:48

标签: javascript jquery

说我有以下HTML:

<div class="test" data-file="1"></div>
<div class="test" data-file="2"></div>

我想获得所有数据文件值的列表。我尝试使用$(.test).data("file"),但这仅返回1,根据jQuery's documentation表示它将返回...the value at the named data store for the first element in the set of matched elements.

强调first

有没有办法告诉jQuery将所有数据值拉入数组?

3 个答案:

答案 0 :(得分:5)

当然!使用.map

var dataValues = $(".test[data-file]").map(function() {
    return $(this).data("file");
}).get();

小提琴:http://jsfiddle.net/5muq33of/

答案 1 :(得分:2)

您可以为此目的创建临时数组:

var myArray = [];
$('.test').each( function() {
    myArray.push( $( this ).data( 'file' ) );
}); 
console.log( myArray );

答案 2 :(得分:0)

&#13;
&#13;
var dataValues = $(".test[data-file]").map(function() {
    return $(this).data("file");
}).get();
console.log(dataValues);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="test" data-file="1"></div>
<div class="test" data-file="2"></div>
&#13;
&#13;
&#13;