jQuery - 切换父元素的类?

时间:2010-04-18 13:38:17

标签: jquery class toggle parent

我有一些列表元素,如下所示:

<li class="item">
    <a class="toggle"><h4>ämne<small>2010-04-17 kl 12:54 by <u>nike1</u></small></h4></a>
    <div class="meddel">
        <span>
            <img style="max-width: 70%; min-height: 70%;" src="profile-images/nike1.jpg" alt="" />
            <a href="account.php?usr=47">nike1</a>
        </span>

        <p>text</p>
        <span style="clear: both; display: block;"></span>
    </div>
</li>

<li class="item odd">
    <a class="toggle"><h4>test<small>2010-04-17 kl 15:01 by <u>nike1</u></small></h4></a>
    <div class="meddel">
        <span>
            <img style="max-width: 70%; min-height: 70%;" src="profile-images/nike1.jpg" alt="" />
            <a href="account.php?usr=47">nike1</a>
        </span>

        <p>test meddelande :) [a]http://youtube.com[/a]</p>
        <span style="clear: both; display: block;"></span>
    </div>
</li>

我正在试图弄清楚如何制作它,以便当你点击类.toggle的链接时,父元素(li元素)将切换类.current。

我不确定以下代码是否正确,但它无效。

$(this).parent('.item').toggleClass('.current', addOrRemove);

即使我删除“('.item')”,它似乎没有任何区别。

那么,有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:7)

toggleClass采用类名,而不是选择器。因此,您不应包含. 将其更改为toggleClass('current')(不含.)。

此外,您可以通过调用closest代替parent来使代码更加强大。 closest将搜索与选择器匹配的最内层父元素,以便在链接嵌套在.item内时它将继续工作。