选择前面的第一个LI元素

时间:2013-12-02 04:08:28

标签: jquery

这是我的代码片段:

<ul>
<li id="eur" class="na">EUR<br /><span class="orgic ui-icon ui-icon-circle-close">.</span><span class="orgic ui-icon ui-icon-help">.</span></li>
</ul>

$("span.ui-icon-help").click(function () {
   alert($(this).prevAll("li").attr("id"));
});

我需要的是获取第一个

  • 元素的id在我们点击的元素之前,即第二个范围与类 ui-icon-help - 它应该触发警报“eur”。

    此代码不起作用,它选择前面的跨度,而不是“li”。

    如何解决这个问题?

    由于

  • 2 个答案:

    答案 0 :(得分:3)

    使用.closest()

    $("span.ui-icon-help").click(function () {
       alert($(this).closest("li").attr("id"));
       //alert($(this).parent().attr("id"));
    });
    

    演示:Fiddle

    .prevAll()选择以前的兄弟元素 - 在您的情况下,span.ui-icon-circle-closebr元素是之前的兄弟元素。但你需要的是祖先元素。在您的情况下,由于span是目标li的直接后代,您可以使用.parent(),或者您可以使用.closest()查找与传递选择器匹配的最近祖先

    答案 1 :(得分:1)

    尝试使用.parents(),例如:

    $("span.ui-icon-help").click(function () {
       alert($(this).parents("li").attr("id"));
    });