У меня есть страница со многими ссылками, но я хочу использовать js, выбрать все ссылки внутри тега nav и назначить их переменной с именем navigationLinks. Есть ли способ сделать это, не назначая класс всем ссылкам. `
<nav>
<ul>
<li><a href="index.html" class="selected">Portfolio</a></li>
<li><a href="about.html">About</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
Вот js:
let navigationLinks = document.getElementsByTagName('nav');
Спасибо.
3 ответа
let navigationLinks = document.querySelectorAll('nav a');
Но помните, что это объект NodeList.
Ваш данный JavaScript:
let navigationLinks = document.getElementsByTagName('nav');
Неправильно, используйте [0]
после document.getElementsByTagName('nav')
, чтобы выбрать первый навигационный элемент.
Используйте этот код, чтобы назначить класс my-class
для каждой ссылки <a>
внутри nav
let navigationLinks = document.getElementsByTagName('nav')[0];
let button = document.getElementsByTagName('button')[0];
var ul = navigationLinks.children[0];
var ulChilds = ul.children;
function insertClass() {
for (var x=0;x < ulChilds.length;x++) {
ulChilds[x].className += ' my-class';
}
}
button.onclick = insertClass;
.my-class {
background: yellow; /*Just testing class*/
}
<nav>
<ul>
<li><a href="index.html" class="selected">Portfolio</a></li>
<li><a href="about.html">About</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</nav>
<button>Add my-class</button>
Надеюсь, тебе это нужно.
let navElement = document.getElementsByTagName('NAV');
let navigationLinks = navElement[0].getElementsByTagName('A');
Если у вас есть несколько навигационных тегов, вам может понадобиться зациклить их
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.