更新$(this)但其中的范围

时间:2012-11-08 09:46:00

标签: jquery text

我正在尝试更新锚点中的<span>,具体取决于您是否点击。如果你点击它并且幻灯片是打开的,那就是'navigateup',如果它没有激活,那就是'navigatedown'。

如果它是需要改变的整个锚,我有这个工作,但我只需要改变跨度。另外,我可以为它编写一个单独的脚本,但我认为最好将它包含在已经存在的jQuery中。

有什么想法吗?

我有这个HTML:

<li class="page_item page-item-29 parent"><a href="#">Clinical/Laboratory<span class="ss-icon navigation-drop-icon">navigatedown</span></a></li>

这是我的jQuery:

$(".sub-navigation li.parent > a").click(function(e) {
   e.preventDefault()
   $(this).text($(this).text() == 'navigateup' ? 'navigatedown' : 'navigateup');
   $(this).closest('.parent').find("> .children").slideToggle(400);
});

谢谢, [R

1 个答案:

答案 0 :(得分:2)

如果我理解你是正确的,你可以将span作为文本的选择器提供,然后使用this作为上下文查看内容,如下所示:

 $("span", this).text($("span", this).text() == 'navigateup' ? 'navigatedown' : 'navigateup');

jQuery函数允许您传递第二个参数,这是使用选择器时要查看的上下文。在这种情况下,范围选择器仅匹配单击元素中的span元素。

根据the documentation,上下文可以是:

  

用作上下文的DOM元素,文档或jQuery

我认为jQuery在幕后使用.find()方法,因此在您的情况下,上面的示例只是$(this).find("span")的简写