JavaScript - 从'for'循环中选择最后一项

问题描述 投票:0回答:2

假设我有一个简单的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>
javascript html loops
2个回答
2
投票

选择班级的最后一场比赛(例如,使用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适用于元素类型,而非类......)


2
投票

由于elements是一个类似数组的对象,因此您可以轻松索引最后一项

const elements = document.getElementsByClassName('some_div');
if(elements.length > 0){
     const lastElement = elements[elements.length-1]
}
© www.soinside.com 2019 - 2024. All rights reserved.