Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery访问上一个li_Javascript_Jquery_Dom - Fatal编程技术网

Javascript 如何使用jquery访问上一个li

Javascript 如何使用jquery访问上一个li,javascript,jquery,dom,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> javascript的前两行正在

我有以下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>

javascript的前两行正在工作。由于某种原因,我无法让最后一行开始工作。我试图让第二个li标记激活该类,但该类没有被添加到任何位置。

您想要的是
parent()
而不是
prev()

该链接没有以前的元素。您要获取链接的父级:

yolo.parent().addClass("active");
参考:


请注意,您也可以使用
.nestest('li')
而不是
.parent()

通过示例了解这一点。我想这回答了你的问题:

标记

<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>
我在这里做了一个JSFiddle:

.prev()只查询元素的同级,而.not allowed没有。为了使用.prev(),您需要调用.parent()以获取锚点所在的列表项元素:

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

编辑:我是个白痴

试过了,但没用为什么prev不起作用?我阅读了prev的文档,看起来我写的应该可以用了?您的元素嵌套在
li
中<代码>上一个表示相邻元素
parent
指的是父项。因为没有上一个同级项,您在isnide上有li元素“我正在尝试使用*第二个li标记*激活类”我不确定为什么这个答案被否决。这正是我所需要的。谢谢。@Philip7899-不,您在问题中说“我正在尝试让第二个li标记激活该类”。您的HTML与本问题中的HTML不同,并且.prev()无法根据您的代码和需求工作。
$( "li.third-item" ).prev().css( "background-color", "red" );
yolo.parent().prev("li").addClass("active");