从列表中获取具有属性的元素

问题描述 投票:2回答:2

我得到了一个包含多个元素的列表,您可以在下面的示例代码段中找到它,并且我希望获得具有特定属性("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的属性?任何帮助将非常感激。

javascript jquery
2个回答
4
投票

您可以过滤掉找到的元素。

$(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>

0
投票

你应该使用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中的所有元素......

希望能帮助到你!

© www.soinside.com 2019 - 2024. All rights reserved.