返回列表的父级

时间:2014-03-27 16:29:22

标签: javascript jquery

我有一个项目列表,在每个列表项目中都有子列表项的可能性。我无法控制这个清单。这就是我得到的。

<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

3 个答案:

答案 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())
   }
})

Fiddle