我有一个带有data属性的
jquery元素列表.
现在我想获得这些数据属性的列表.
由于data-attribute是某种对象属性,我认为这可能适用于下划线pluck
方法.
这甚至可能吗?
看到这个简短的例子:
var divs = $("div"); // Now do something // expected result: [1,2,3]
<script src="https://cdnjs.com/libraries/underscore.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div data-foo="1">a</div> <div data-foo="2">b</div> <div data-foo="3">c</div> <div>x</div>
解
基于@ romeo-sierra这是我写下来的方式(因为我已经有了jquery对象).下划线是多余的
var foos = $("div").map(function() { return $(this).data("foo"); }).toArray(); console.log(foos);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div data-foo="1">a</div> <div data-foo="2">b</div> <div data-foo="3">c</div> <div>x</div>
解决方法
如何使用纯jQuery? (因为你已经在使用它)
var arr = []; $('div[data-foo]').each(function(){ arr.push($(this).data("foo")); // should return the value }); console.log(arr);
检查this fiddle.