Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 如何获取父元素?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何获取父元素?

Javascript 如何获取父元素?,javascript,jquery,html,Javascript,Jquery,Html,我有这部分HTML: <div id="menu"> <ul> <li><a href="/">Startseite</a></li> <li class="active"><a href="/pacmodule/glass">Brillengl&#228;ser</a></li> <li><a

我有这部分HTML:

<div id="menu">
    <ul>
        <li><a href="/">Startseite</a></li>
        <li class="active"><a href="/pacmodule/glass">Brillengl&#228;ser</a></li>
        <li><a href="/pacmodule/completeglass">Komplettbrille</a></li>
        <li><a href="/t/Comingsoon">Sportbrillen</a></li>
        <li><a href="/PacCategoryRedirect/0">Marketing</a></li>
        <li><a href="/customer/statistics">Statistik</a></li>
     </ul>
</div>
但我对第二部分有问题。此选项仅选择一个标记:

$('a[href="/pacmodule/completeglass"]').parent().html();
这全是ul标签:

$('a[href="/pacmodule/completeglass"]').parent().parent().html();
如何在li标记中设置class=“active”属性,其中href=“/pacmodule/completeglass”


谢谢您的帮助。

您不需要
html()
调用。它们只是将innerHTML作为字符串返回。您可能期望它会返回
outerHTML
(对于outerHTML,请使用类似于
…parent()[0].outerHTML
)的内容)

试试这个:

$('a[href="/pacmodule/completeglass"]').closest('li').addClass('active');
它将根据href=“/pacmodule/completeglass”找到锚,然后找到最近的祖先,即
LI
,然后将类
活动添加到该类中

最近的
是查找特定类型祖先最有用的方法。这比使用
parent()
要好,因为
最近的
可以处理HTML结构的变化

注意:如果您解释了总体目标,可能有比搜索链接href:)更好的方法

更新

您不想删除之前的选择,因为它太具体了:

$("#menu").find("ul:first").find(".active").removeClass("active");
请尝试以下方法:

$("#menu li.active").removeClass("active");
这可以通过以下方式更有效地书写:

$("#menu").find("li.active").removeClass("active");
然后DOM不需要搜索任何ul,而是直接进入类
.active

轻松做到这一点(在js文档中):


你为什么不试试这个:

$("#menu").find("ul:first").find(".active").removeClass("active");
$('a[href="/pacmodule/completeglass"]').parent().addClass("active");

你可能想看看这个

就这样!多谢各位@科尔:没问题。如果您不需要更多信息,请接受回答/投票。您现在有了足够的评级:)为什么不干脆
$(“#menu li.active”).removeClass(“active”)?我已经谈过了。这个答案实际上并没有回答所问的问题,所以应该是一个评论。干杯。是的,没有看到你的编辑,但是ofc。WP@TrueBlueAussie
$("#menu").find("li.active").removeClass("active");
$("li").removeClass("active").find($('a[href="/pacmodule/completeglass"]')).closest('li').addClass('active');
$("#menu li").removeClass("active");
$('a[href="/pacmodule/completeglass"]').parent().addClass("active");
$("#menu").find("ul:first").find(".active").removeClass("active");
$('a[href="/pacmodule/completeglass"]').parent().addClass("active");