如何使用 jquery 找到并 select 所有具有数据属性的元素以特定单词开头?
How can I find and select all elements which have data attribute start with specific word with using jquery?
我想在包装 div 下找到并 select 所有具有数据属性并以 "data-qu" 开头的元素。我如何使用 jquery?
来做到这一点
HTML
<div class="wrapper">
<div data-qu-lw="1"></div>
<div data-qu-md="2"></div>
<div data-res-kl="1"></div>
<div data-qu-lg="3"></div>
</div>
有没有办法 select 像这样 $('.wrapper').find('^data-qu')
或类似的方法?
var filteredElements = $('.wrapper > div').filter(function(){
var attrs = this.attributes;
for (var i=0; i<attrs.length; i++) {
if (attrs[i].name.indexOf("data-qu")==0) return true;
}
return false;
});
参考:jQuery attribute name contains
你可以这样做。
$('.wrapper div').filter(function() {
for (var property in $(this).data()) {
if (property.indexOf('data-qu') == 0) {
return true;
}
}
return false;
});
尝试利用 .filter()
、test()
、Object.keys()
$(".wrapper *").filter(function() {
return /^qu/.test(Object.keys($(this).data())[0])
}).css("color", "aqua")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="wrapper">
<div data-qu-lw="1">1</div>
<div data-qu-md="2">2</div>
<div data-res-kl="1">1</div>
<div data-qu-lg="3">3</div>
</div>
我想在包装 div 下找到并 select 所有具有数据属性并以 "data-qu" 开头的元素。我如何使用 jquery?
来做到这一点HTML
<div class="wrapper">
<div data-qu-lw="1"></div>
<div data-qu-md="2"></div>
<div data-res-kl="1"></div>
<div data-qu-lg="3"></div>
</div>
有没有办法 select 像这样 $('.wrapper').find('^data-qu')
或类似的方法?
var filteredElements = $('.wrapper > div').filter(function(){
var attrs = this.attributes;
for (var i=0; i<attrs.length; i++) {
if (attrs[i].name.indexOf("data-qu")==0) return true;
}
return false;
});
参考:jQuery attribute name contains
你可以这样做。
$('.wrapper div').filter(function() {
for (var property in $(this).data()) {
if (property.indexOf('data-qu') == 0) {
return true;
}
}
return false;
});
尝试利用 .filter()
、test()
、Object.keys()
$(".wrapper *").filter(function() {
return /^qu/.test(Object.keys($(this).data())[0])
}).css("color", "aqua")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="wrapper">
<div data-qu-lw="1">1</div>
<div data-qu-md="2">2</div>
<div data-res-kl="1">1</div>
<div data-qu-lg="3">3</div>
</div>