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

Javascript 是否获取所有匹配元素的数据属性?,javascript,jquery,Javascript,Jquery,假设我有如下HTML: <div class="test" data-file="1"></div> <div class="test" data-file="2"></div> 我想获得所有数据文件值的列表。我尝试使用,$(.test).data(“文件”),但这只返回1,根据它将返回的…匹配元素集中第一个元素在命名数据存储中的值,这是有意义的。 首先强调 有没有办法告诉jQuery将所有数据值拉入一个数组?当然!使用.map var da

假设我有如下HTML:

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

我想获得所有数据文件值的列表。我尝试使用,
$(.test).data(“文件”)
,但这只返回
1
,根据它将返回的
…匹配元素集中第一个元素在命名数据存储中的值,这是有意义的。

首先强调


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

当然!使用
.map

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

小提琴:当然!使用
.map

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

Fiddle:

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

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

您可以为此目的创建临时阵列:

var myArray = [];
$('.test').each( function() {
    myArray.push( $( this ).data( 'file' ) );
}); 
console.log( myArray );
var-dataValues=$(“.test[数据文件]”).map(函数(){
返回$(this).data(“文件”);
}).get();
console.log(数据值)

var-dataValues=$(“.test[数据文件]”).map(函数(){
返回$(this).data(“文件”);
}).get();
console.log(数据值)


use.map and solve-ur-queryuse.map and solve-ur-queryI在您提交时正在键入此信息。use
.map
!-步骤更少,无需在手之前声明空数组:D。我还将
data
属性包含在选择器中,以确保元素的每个迭代都有一个data属性。@tymeJV我知道,我知道,就像不同方法的示例:)我在提交时键入了这个。使用
.map
!-步骤更少,无需事先声明空数组:D。我还需要在选择器中包含
data
属性,以确保元素的每个迭代都有一个data属性。@tymeJV我知道,我知道,就像不同方法的示例:)the.test['dat-file']将无法识别…除非您修改它,否则此项将无法工作谢谢:)将无法识别.test['dat-file']…除非您修改它,否则此项将无法工作谢谢:)