javascript – 结合$和_来获取数据值?

我有一个带有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.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...