我有以下代码
<div>
<a href="#" class="clickMe">test</a>
<ul>
<li class="action_li">1</li>
<li class="action_li">2</li>
</ul></div> <div>
<a href="#" class="clickMe">test</a>
<ul>
<li class="action_li">3</li>
<li class="action_li">4</li>
</ul>
我希望循环使用与点击的<li>
<div>
所包含的所有<a>
$("a.clickMe").live("click", function(eve){
eve.preventDefault();
$('.action_li').each(function(index) {
console.debug(this);
});
});
但当然这会让我得到所有4 <li>
而不是两个封闭的$(this)
所以我想要一些以.each()
开头并以{{1}}
答案 0 :(得分:5)
有很多方法,例如:
$(this).parent().find("li.action_li").each(function(index) {
console.debug(this);
});
或:
$(this).next("ul").children("li.action_li").each(function(index) {
console.debug(this);
});
等
答案 1 :(得分:5)
这应该有效:
$("a.clickMe").live("click", function(eve){
eve.preventDefault();
$('.action_li', $(this).parent()).each(function(index) {
console.debug(this);
});
});
选择器旁边的第二个参数将搜索限制为仅仅部分DOM树,在此部分中将div
限制为a
元素的父项。
答案 2 :(得分:3)
你需要得到<ul>
的{{1}}元素,然后得到它的孩子。
例如:
<a>
您也可以拨打$(this).siblings('ul').children('li.action_li').each(function(index) {
//...
});
或$(this).next()
。
答案 3 :(得分:0)
这可能有效:
$(this).parents('div').find('li').each(...