我有一个项目列表,在每个列表项目中都有子列表项的可能性。我无法控制这个清单。这就是我得到的。
<div id='list'>
<ul>
<li><span>A</span></li>
<li><span>B</span>
<ul>
<li><span>Sub 1</span></li>
<li><span>Sub 2</span></li>
</ul>
</li>
</ul>
</div>
$('#list').off().on("click","li",function(e){
console.log($(this).text());
});
我需要的是一个jQuery事件,当你点击一个子菜单项时,我想知道li
中的父span
的名字。因此,例如,如果我点击“Sub 1”,我想得到“B”以及“Sub 1”。我可以得到“Sub 1.”这是容易的部分。但我不知道如何获得“B”。提前谢谢。
编辑:现在如何写这个是有人点击我获得该项目中文本的任何项目。但是,当我单击Sub 1列表项时,我需要知道Sub 1也会获得它来自的父列表项。在这种情况下,它是B
答案 0 :(得分:1)
类似这样的事:http://jsfiddle.net/Pfzf8/
$('ul > li > ul > li').on('click',function(){
var sub = $(this).children('span').html();
var parent = $(this).closest('ul').prev().html();
alert(sub);
alert(parent);
});
<ul>
<li><span>A</span></li>
<li><span>B</span>
<ul>
<li><span>Sub 1</span></li>
<li><span>Sub 2</span></li>
</ul>
</li>
</ul>
答案 1 :(得分:0)
试试这个:
$('ul > li > ul > li').click(function() {
console.log($(this).parent().parent().find('span').first().text());
});
答案 2 :(得分:0)
尝试这样的事情
$("ul li").click(function(e){
e.stopPropagation()
console.log($(this).children("span").text())
if($(this).parents("li").length != 0){
console.log($(this).parents("li").children("span").text())
}
})