根据匹配部分选择数据属性

时间:2016-04-10 14:39:40

标签: javascript custom-data-attribute

如何在像这样的元素中选择以data-size-开头的所有数据属性

<div class="el" data-name="str" data-size-100="str" data-size-158="str" data-size-304="str">str</div>

我尝试做类似的事情,但无法弄清楚:

$('.el').attr('[data-size-*]') 

1 个答案:

答案 0 :(得分:3)

您可以使用dataset

来实现它
var data = $('.el')[0].dataset;
var attrs = Object.keys(data).reduce(function(a,b){
 if(b.startsWith("size")){ a.push(data[b]); }
 return a;
},[]);

console.log(attrs); \\ ["str","str","str"]

在这里,我使用startsWith来确定数据 - &#39;键&#39;是否以特定子字符串开头。同样reduce是根据我们的条件将原始键数组缩减为新数组。

DEMO