选择具有特定属性值的所有第一个元素

时间:2015-11-09 14:56:35

标签: javascript jquery html

在表单上,​​我必须从表单中存在的所有列表项中选择具有特定属性值的所有第一个<a>元素。例如,在下面的代码中,我必须选择包含内容<a>xxx的{​​{1}}元素 - 换句话说,第一个zzz元素{{1}来自所有列表项。

&#13;
&#13;
<a>
&#13;
data-role="modal"
&#13;
&#13;
&#13;

我尝试的jQuery只选择console.log($('ul li a[data-role="modal"]:first'));

4 个答案:

答案 0 :(得分:4)

您可以使用.find()获取a中包含属性data-role=modal的所有ul li个元素,并应用:eq获取每个匹配的第一个元素:

$('ul li').find('a[data-role="modal"]:eq(0)').css('color', 'red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>
    <a data-role="modal">xxx</a>
    <a data-role="modal">yyy</a>
  </li>
  <li>
    <a>abc</a>
    <a data-role="modal">zzz</a>
    <a data-role="modal">xyz</a>
  </li>
</ul>

<强>参考

.find()

:eq

答案 1 :(得分:0)

尝试:

$('ul li').find('a[data-role="modal"]:first')

&#13;
&#13;
console.log( $('ul li').find('a[data-role="modal"]:first').map(function() {
    return $(this).text();
}).get() );
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
<li>
<a data-role="modal">xxx</a>
<a data-role="modal">yyy</a>
</li>


<li>
<a>abc</a>
<a data-role="modal">zzz</a>
<a data-role="modal">xyz</a>
</li>
</ul>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

检查

$('document').ready(function(){
    $('ul li').each(function(){
     $(this).find('a[data-role=modal]:first').css('background-color','red');
    });
});

答案 3 :(得分:0)

我想这可能会有所帮助

$('document').ready(function(){
    $('ul li').each(function(){
     $(this).find('a[data-role="modal"]').first().css('background-color','red');
    });
});