gpt4 book ai didi

javascript : applying class to parent tag element on a condition of child element

转载 作者:行者123 更新时间:2023-11-28 10:35:59 25 4
gpt4 key购买 nike

如果您能帮我解答,我将不胜感激。请只用 JavaScript 回答,不要用 jQuery。

HTML代码:

 <li><a class="menu" href="#">Personnel</a>
<ul>
<li><a href="about.html">About</a></li>
<li><a href="blog.html">Blog</a></li>
</ul>
</li>

<li><a class="menu" href="#">Experience</a>
<ul>
<li><a href="http://stackoverflow.com/">Stack</a></li>
<li><a href="http://odesk.com/">Odesk</a></li>
</ul>
</li>

JavaScript 任务:

var url=window.location.href;

如果我的浏览器现在位于“about.html”页面。所以 url="about.html"。当时我想将 anchor 标记“Personnel”的类“menu”更改为类“active”。

否则,如果我的浏览器现在位于“help.html”页面中。所以 url="help.html"。当时我想将 anchor 标签“Experience”的类“menu”更改为类“active”。

最佳答案

相关html:

<a class="menu" id="personnel" href="#">Personnel</a>
<a class="menu" id="experience" href="#">Experience</a>

相关js:

if(url.indexOf('about.html')!==-1)
var elem = document.querySelector('#personnel');
else if (url.indexOf('help.html')!==-1)
var elem = document.querySelector('#experience');
elem.className='active';

编辑

如果不能(静态)更改 HTML,则

var elems = document.querySelectorAll('.menu'),
elem,
desiredElemContents;
if(url.indexOf('about.html')!==-1) desiredElemContents = 'Personnel';
else if (url.indexOf('help.html')!==-1) desiredElemContents = 'Experience';

for(var i=elems.length-1; i>=0; i--) {
var elemContents = elems[i].textContent || elems[i].innerText;
if(elemContents!==desiredElemContents) continue;
elem = elems[i];
break;
};
if (elem) elem.className='active';
else console.error("No element found with content "+desiredElemContents);

请注意,这只能在每次加载页面时运行一次,因为您正在删除“菜单”类。

关于javascript : applying class to parent tag element on a condition of child element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23328308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com