【发布时间】:2019-11-12 14:46:49
【问题描述】:
我正在尝试选择 .nav-item 类的最后一个子元素,我已经尝试了几种方法。它不抓取项目,只返回“null”,应用样式将抓取第一个项目或返回以下错误:
main.js:25 Uncaught TypeError: Cannot read property 'style' of null 在 main.js:25
我的代码:
顶部工作正常并且确实应用了边框,但我想在最后一个项目的右侧应用一个边框,在第一个项目的左侧应用一个边框。最后一项不起作用。
谁能指出我的错误? HTML 如果有帮助:
let items = document.querySelectorAll('.nav-item');
for (let i = 0; i < items.length; i++) {
items[i].style.borderTop = '0.2em solid white';
items[i].style.borderBottom = '0.2em solid white';
}
// First and Last Item
// var secondItem = document.querySelector('.list-group-item:nth-child(2)');
// secondItem.style.color = 'coral';
let lastItem = document.querySelector('.nav-item:nth-child(4)');
console.log(lastItem);
lastItem.style.borderRight = '0.2em solid white';
<nav>
<h1>Item Lister</h1>
<ul class="nav" id="list">
<a href="#"><li class="nav-item">One</li></a>
<a href="#"><li class="nav-item">One</li></a>
<a href="#"><li class="nav-item">One</li></a>
<a href="#"><li class="nav-item">One</li></a>
</ul>
</nav>
【问题讨论】:
-
首先,
ul应该只包含li作为直接子代。其次,每个li当前都是锚点的第一个子节点。 -
像这样移动
li内部的锚点:<li class="nav-item"><a href="#">One</a></li>
标签: javascript