jQuery如何找到div所在的li?

时间:2011-08-22 10:02:21

标签: jquery jquery-selectors

我正在尝试

$(this).parent('li').attr('widgetid')

因为当我在以下布局中点击时,我想找到widgetid

<li widgetid="1">
    <div class="widgetHeader">
        <div class="widgetIcon"></div>
        <div class="widgetTitle"></div>
        <div class="widgetEdit"></div>
        <div class="widgetClose"></div>
    </div>
    <div class="widgetHeader"></div>
</li>

但是我得到了“未定义”所以我认为我迷失了自己“widgetClose”是我试图做的事情的触发器。

4 个答案:

答案 0 :(得分:4)

您可以使用:

$(this).closest('li').attr('widgetid');

参考文献:

答案 1 :(得分:1)

您可以将.parentsevent.stopPropagation

一起使用
$("div").click(function(e){
    e.stopPropagation();
alert($(this).parents('li').attr('widgetid'));

});

http://jsfiddle.net/FhVgp/3/

答案 2 :(得分:1)

您可以使用parents方法,而不是使用带有选择器的父方法(如果直接父级匹配选择器,它只返回一个值),则可以使用parent方法:

$(本)。家长( “利:当量(0)”)。ATTR( “为widgetid”)

parent方法将查看所有祖先元素并返回与选择器匹配的所有元素(在这种情况下,选择器会询问是否找到第一个li)。

答案 3 :(得分:0)

您应该只为所有可点击元素的父级绑定一个单击事件侦听器,然后使用click函数中的event.target来引用所单击的元素。

从那里,您可以使用jQuery <li>方法找到最接近的.closest()元素。