我得到了一个包含多个元素的列表,您可以在下面的示例代码段中找到它,并且我希望获得具有特定属性("test"=true)
的所有元素。
$(function() {
let elements = $(".myClass") // This property can no be changed so all I got is a variable that includes the callback of multiple jQuery elements.
// How to extract all elements with the "test"-attribute from the elements property without using a each function?
console.log(elements)
$(elements).each(function() {
console.log($(this).attr("test") === "true")
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="myClass">A</div>
<div class="myClass">B</div>
<div class="myClass" test=true>C</div>
是否有任何method
只提取具有特定属性的元素,如名为test的属性?任何帮助将非常感激。
您可以过滤掉找到的元素。
$(function() {
let elements = $(".myClass")
console.log( elements.filter('[test="true"]').get() );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="myClass">A</div>
<div class="myClass">B</div>
<div class="myClass" test=true>C</div>
你应该使用data
attr(有效的HTML),然后像你一样用jQuery选择它,例如:
<div data-test='true' class='element1'></div>
<div class='element2'></div>
$(elements).each(function() {
console.log($(this).data("test") === "true"));
})
编辑:作为积分LGSon .without using a each function
//如何在不使用每个函数的情况下从elements属性中使用“test”-attribute提取所有元素?
在这种情况下:
编辑2(my mistake
):allTestElements = $(elements).find(
[data-test ='true'] );
//这样你再次在所有DOM中搜索元素var
然后你拥有var中的所有元素......
希望能帮助到你!