javascript - JavaScript - 从“for”循环中选择最后一项
问题描述
假设我有一个包含三个元素的简单 HTML 标记和一个浏览所有元素的 javascript 循环。我需要做的是选择这些项目中的最后一项。
这堆代码将运行一个循环,选择所有具有类的元素some_div
,并在其中粘贴一些文本......
如果我只想选择和更改列表中的最后一项怎么办?
有没有办法让我只从循环中选择最后一项,然后执行一些操作,比如向这个确切的元素添加一个特定的类?
var elements = document.getElementsByClassName('some_div');
for (var i=0; i<elements.length; i++) {
elements[i].innerHTML = 'hello';
}
.some_div {
height: 30px;
width: 100px;
border-bottom: solid 2px black;
}
<body>
<div class="some_div"></div>
<div class="some_div"></div>
<div class="some_div"></div>
</body>
解决方案
选择一个类的最后一个匹配项(例如,使用 CSS 选择器)很尴尬¹,但您可以轻松访问最后一个匹配项:
var elements = document.getElementsByClassName('some_div');
var last = elements[elements.length - 1];
if (last) {
last.innerHTML = 'hello';
}
现场示例:
var elements = document.getElementsByClassName('some_div');
var last = elements[elements.length - 1];
if (last) {
last.innerHTML = 'hello';
}
.some_div {
height: 30px;
width: 100px;
border-bottom: solid 2px black;
}
<body>
<div class="some_div"></div>
<div class="some_div"></div>
<div class="some_div"></div>
</body>
¹ (或不可能?:nth-last-of-type
适用于元素类型,而不是类......)
推荐阅读
- javascript - 为什么我的 Array.prototype.find() 返回未定义?
- time-series - Stata时间序列滚动预测
- node.js - 使用 MongoDB 和 NodeJS 更新数组中的字段
- reactjs - React/redux:我必须重新加载页面才能删除
- mysql - 将 Unix 与 SQL 数据库连接并创建员工表并插入数据
- python-3.x - 将自定义类对象转储到 YAML 文件
- shared-libraries - arm-none-eabi-objdump:加载共享库时出错:libdebuginfod.so.1:无法打开共享对象文件
- r - 如何使用两个数据框(一个用于依赖变量,另一个用于自变量)为 glm 制作双循环?
- c - 使用 GCC 链接到静态库时遇到问题
- html - CSS 滚动对齐对齐。无法缩放滚动元素保持其位置