2014-03-27 94 views
-1

我有一個項目列表,並且在每個列表項目中都有子列表項目的可能性。我無法控制這個清單。這正是我得到的。返回列表的父項

<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事件,當你點擊一個子菜單項,我想知道在spanli的名字,說。因此,例如,如果我點擊「Sub 1」,我想獲得「B」以及「Sub 1」。我可以得到「Sub 1」。這是很容易的部分。但我不知道如何得到「B」。先謝謝你。

編輯:現在這是如何寫的是有人點擊任何項目,我得到的文本在該項目。但是,當我單擊Sub 1列表項時,我需要知道Sub 1也會獲取它來自的父列表項。在這種情況下,它'S B

+1

請笑w您現有的代碼:) –

+2

那麼你卡在哪裏? –

+0

_「我想知道跨度裏的父母李的名字」_。這對我沒有意義。 – j08691

回答

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> 
+0

真正的真實關閉,我也需要得到A和B如果我點擊這些項目。對不起,我沒有說上面。我道歉。 – seroth

+0

**編輯**:偉大的作品,我想出瞭如何獲得頂級的。非常感謝你,這正是我所需要的。 – seroth

+0

@seroth很好,很高興幫助,我仍然試圖找到解決方案... – caramba

0

試試這個:

$('ul > li > ul > li').click(function() { 
    console.log($(this).parent().parent().find('span').first().text()); 
}); 
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