我有这个问题:多个类,每个类中有多个跨度,并且想要提取第一个类的所有数据属性。
<div class="parent_class">
<span data-year="a_1">Data</span>
<span data-make="b_1">Data</span>
<span data-model="c_1">Data</span>
<span data-motor="d_1">Data</span>
</div>
<div class="parent_class">
<span data-year="a_2">Data 2</span>
<span data-make="b_2">Data 2</span>
<span data-model="c_2">Data 2</span>
<span data-motor="d_2">Data 2</span>
</div>
我进行了多次尝试,刚刚获得了第一个数据属性,没有问题。
var year_response = $('.parent_class:first span').data('year');
Response:
year_response = a1;
但是当我尝试使用 make 和其他数据属性时,我得到了未定义
Actual:
var make_response = $('.parent_class:first span').data('make');
**Response:
make_response = undefined;**
Desire:
var make_response = $('.parent_class:first span').data('make');
**Response:
make_response = b_1;**
最佳答案
如何将跨度的所有数据属性作为对象获取并将它们映射到数组:
var data = $.map($('.parent_class:first span'), function(el) {
return $(el).data();
});
如果所有数据属性都不同,则为对象:
var data = {};
$.each($('.parent_class:first span'), function(i, el) {
$.each($(el).data(), function(k,v) {data[k] = v});
});
关于performance - 获取多个子项中的数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20361224/