JQuery addClass无法正常工作

时间:2011-03-02 16:17:03

标签: jquery

$("div#pay-by-this-method ul li a").click(function(){
  $("div#pay-by-this-method ul li").removeClass("selected");
  $(this).parent("li").addClass("selected");
});

<div id="pay-by-this-method" class="append-bottom">
<ul id="payment-method-chooser">
    <li id="" class=""><a href="#" rel="" class="" >Credit/Debit Card</a></li>
    <li id="" class=""><a href="#" rel="" class="">Net 30 Account</a></li>
</ul>
 </div>

此功能适用于两个链接。默认情况下会选择第一个链接,并且已选择“已选择”类。当我点击另一个链接时,removeClass工作,但是addClass不会为另一个链接触发,也不会再次点击第一个链接(它应该)。

我认为没有任何理由说明为什么这个功能不起作用,没有太大的意义。我在这里错过了什么吗?

顺便说一句,在函数内部还有更多代码(if else else语句,我不能公开发布),这样做很好。我可以发出警报,并在此功能中做任何其他事情,它完美无缺。 removeClass工作得很好,它只是没有触发的addClass。

1 个答案:

答案 0 :(得分:5)

你可能想要

$(this).closest('li').addClass('selected');

“。parent()”函数仅适用于元素的 direct 父级,当您传递一个与实际父级不匹配的选择器时,您将获得一个空的jQuery列表。 “.closest()”函数找到与选择器匹配的第一个祖先,无论DOM有多远。