我正在设计dynatree,以便将节点放置在ul和li标签中。我得到的问题是我没有得到点击的li元素的父母。

这是我的html代码,

<ul class="bulk">

 <li>gp1
   <ul>
    <li>gp2
    <ul>
        <li>gp3
            <ul>
                <li>c1
                <li>c2
                <li>c3
            </ul>
        <li>gp4
    </ul>
  </ul>
 <li>gp5
   <ul>
    <li>gp6
    <ul>
        <li>gp7
            <ul>
                <li>c4
                <ul>
                <li>c5
                <li>c6
                </ul>

            </ul>
        <li>gp8
        <li>gp9
    </ul>
    <li>gp10
</ul>
</ul>


这是我的jQuery方法

   $('ul.bulk li').click(function(e)
                {
                 //alert($(this).find("span.t").text());
                 alert(e.html());
                });


这是我的烦恼http://jsfiddle.net/raghavendram040/ojnLrcjz/

我遇到的问题是,如果单击gp3会提醒我3次,但是我想如果单击gp3它将提醒我的父母(gp1和gp2)。在这里,我将所有li和ul动态放置到标签之外。如何做到这一点,请帮助我

最佳答案

你可以做类似的事情

$(function () {
    $('ul.bulk li').click(function (e) {
        if($(e.target).is(this)){
            $(this).parentsUntil('.bulk', 'li').each(function(){
                alert(this.firstChild.nodeValue)
            })
        }
    });
});


演示:Fiddle

09-25 18:04
查看更多