简体   繁体   English

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

[英]add value of attribute with specific condition on list items

i have this code. 我有这个代码。

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

how do i add (id="disable") to only that span of list item which have attribute (key="0") 如何将(id =“ disable”)仅添加到具有属性(key =“ 0”)的列表项的范围内

i am using this code . 我正在使用此代码。

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

使用属性选择器

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

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

 $(function(){ $('li').each(function(){ if( $(this).find('span').attr('key') == '0' ) $(this).find('span').attr('id','disable') }); }) 
 #disable{ background : red; } 
 <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> 

But instead of using .each to loop you can just use $('li > span[key=0]').attr('id','disable'); 但是, .each使用.each循环之外,您还可以使用$('li > span[key=0]').attr('id','disable');

 $(function(){ $('li > span[key=0]').attr('id','disable'); }) 
 #disable{ background : red; } 
 <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> 

Note: Don't duplicate Id .. if you intend to use the code for more than one element use class instead 注意:如果您打算将代码用于多个元素, 不要使用Id ..

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM