在列表项上添加具有特定条件的属性值

时间:2017-12-29 02:53:31

标签: javascript jquery

我有这段代码。

<ul>
<li><span id='' key="num">30</span></li>
<li><span id='' key="0">40</span></li>
<li><span id='' key="num">20</span></li>
</ul>

我如何添加(id =&#34;禁用&#34;)仅限于具有属性的列表项的范围(key =&#34; 0&#34;)

我正在使用此代码。

$(function(){
  $('li').each(function(){
    if( $(this).find('span').attr('key') == '0' ) $(this).attr('span:id','disable')
  });
})

2 个答案:

答案 0 :(得分:1)

使用attribute selector

$('li span[key="0"]').attr('id', 'disable');

答案 1 :(得分:0)

您可以使用$(this).find('span').attr('id','disable')

&#13;
&#13;
$(function(){
  $('li').each(function(){
    if( $(this).find('span').attr('key') == '0' ) $(this).find('span').attr('id','disable')
  });
})
&#13;
#disable{
  background : red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><span id='' key="num">30</span></li>
<li><span id='' key="0">40</span></li>
<li><span id='' key="num">20</span></li>
</ul>
&#13;
&#13;
&#13;

但是,您可以使用.each

而不是使用$('li > span[key=0]').attr('id','disable');循环

&#13;
&#13;
$(function(){
  $('li > span[key=0]').attr('id','disable');
})
&#13;
#disable{
  background : red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><span id='' key="num">30</span></li>
<li><span id='' key="0">40</span></li>
<li><span id='' key="num">20</span></li>
</ul>
&#13;
&#13;
&#13;

  

注意:不要重复ID ..如果您打算将代码用于多个元素而不是