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

时间:2018-07-02 18:43:54

标签: javascript jquery

我得到了多个元素的列表,就像您在下面的示例代码段中所找到的一样,我想获得具有特定属性("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的属性)?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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

  

//如何从目录中提取具有“测试”属性的所有元素   元素属性而不使用每个函数?

在这种情况下:

编辑2 my mistake): allTestElements = $(elements).find( [data-test ='true'] ); //通过这种方式,您可以再次在所有DOM中搜索var元素

然后您将所有元素都包含在变量中...

希望有帮助!

相关问题