我有这棵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" />
<a href="#" id="$badge_id" class="more">More</a>
</div>
</div>
<div class="badge_button">
<a href="#" class="disable">Disable</a>
</div>
</li>
我想知道如何使用jquery,我可以根据查找哪个<li>
包含.disable类来得到.more的“id”(我将如何有效地遍历它是我要问的因为我是尝试将此id存储在var badge_id中)
答案 0 :(得分:1)
如果<li class="badge_listtwo">
始终是您可以做的父母
var test = $('.disable').closest('li.badge_listtwo').find('.more').attr('id');
答案 1 :(得分:1)
var badge_id = $("li").filter(function() {
return $(this).find(".disable").length;
}).first().find(".more").attr("id");
你也可以使用Shef建议的“:has”选择器。
答案 2 :(得分:0)
如果它是单个元素,则会执行以下操作:
var badge_id = $('li.disable .more').attr('id');
如果您需要array
个ID,这就是解决方案:
var badge_ids = $('li.disable .more').map(function(){
return this.id;
}).get();
如果您要查找a
内more
个元素的ID,其中li
的{{1}}元素包含a
个类,那么这将是选择器:
disable
答案 3 :(得分:0)
也许这对性能来说是个好主意
var lifinder = $('li').find('a.more')
var badge_id = lifinder.attr('id');
if (badge_id != undefined) {
alert(badge_id);
}
else {
alert('not found');
}