如何使用jquery来到以前的li

时间:2015-04-24 20:52:09

标签: javascript jquery dom

我有以下html:

<li>
    <a href="#tab1" data-toggle="tab">Presentation Name</a>
</li>
<li>
    <a href="#tab2" data-toggle="tab" class="not-allowed" id="survey_kind">Survey Length</a>
</li>

这里是jquery:

var yolo = $('.not-allowed').first();
yolo.removeClass("not-allowed");
yolo.prev("li").addClass("active");

前两行的javascript正在运行。出于某种原因,我不能让最后一行工作。我试图让第二个li标签让这个类处于活动状态,但是这个类没有被添加到任何地方。

4 个答案:

答案 0 :(得分:2)

该链接没有先前的元素。您想获得链接的

yolo.parent().addClass("active");

参考:.parent()

<强> jsFiddle example

请注意,您也可以使用.closest('li')代替.parent()

答案 1 :(得分:1)

您希望parent()不是prev()

答案 2 :(得分:0)

.prev()仅查询元素的兄弟节点,而.not-allowed则不查询。要使用.prev(),您需要调用.parent()来获取锚点所在的列表项元素:

yolo.parent().prev("li").addClass("active");
编辑:我是个白痴

答案 3 :(得分:-2)

通过示例看看这个。我想这回答了你的问题:https://api.jquery.com/prev/

<强>标记

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li class="third-item">list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

<强> JQuery的

$( "li.third-item" ).prev().css( "background-color", "red" );

我在这里制作了一个JSFiddle:https://jsfiddle.net/ToreanJoel/nq6efza9/