Jquery 遍历dom以查找包含class.disable的div的$(.more)
我有一个dom树:Jquery 遍历dom以查找包含class.disable的div的$(.more),jquery,Jquery,我有一个dom树: <li class="badge_listtwo"> <div class="badge_spacetwo"> <p class="badge_title">$badge_title</p> <div class="badge_button"> <img src="badgeImages/sample.png" />
<li class="badge_listtwo">
<div class="badge_spacetwo">
<p class="badge_title">$badge_title</p>
<div class="badge_button">
<img src="badgeImages/sample.png" />
<a href="#" id="$badge_id" class="more">More</a>
</div>
</div>
<div class="badge_button">
<a href="#" class="disable">Disable</a>
</div>
</li>
$badge\u title
我想知道如何使用jquery获得的“id”。更多信息基于查找哪个
包含.disable类(我要问的是如何有效地遍历它,因为我试图将此id存储在var badge_id中)如果它是单个元素,这将执行以下操作:
var badge_id = $('li.disable .more').attr('id');
如果您需要ID的数组
,以下是解决方案:
var badge_ids = $('li.disable .more').map(function(){
return this.id;
}).get();
如果您在
li
中查找a
元素id,该元素具有类more
,该元素具有类disable
的a
元素,则这将是选择器:
var badge_id = $('li:has("a.disable")').find('a.more').attr('id');
如果
始终是您可以做的家长
var test = $('.disable').closest('li.badge_listtwo').find('.more').attr('id');
您也可以按照Shef的建议使用“:has”选择器。也许这是一个提高性能的好主意
var lifinder = $('li').find('a.more')
var badge_id = lifinder.attr('id');
if (badge_id != undefined) {
alert(badge_id);
}
else {
alert('not found');
}
我认为这将选择li类=禁用…而不是元素(在本例中为a)是否包含类=disable@PraneetSharma您是否正在查找既有
更多
类又有禁用
类的a
元素?或者a
元素在li
中具有类更多的a
元素,该元素具有类禁用
?我在第二个解决方案的答案中添加了第二部分。@Shef阅读了HTML。。。它是一个包含.more和.disable元素的li
var lifinder = $('li').find('a.more')
var badge_id = lifinder.attr('id');
if (badge_id != undefined) {
alert(badge_id);
}
else {
alert('not found');
}