如何到达forEach()JS中的最后一个元素

时间:2017-10-20 15:59:32

标签: javascript foreach

我在这里尝试了很多解决方案,但没有为我工作。我循环节点元素,我想到最后一个,所以我更新它。

app.js

var userLen = document.querySelectorAll('.username').length
document.querySelectorAll('.username').forEach(function (event) {
  event[event === (userLen - 1)].innerHTML =   window.localStorage.getItem('micky')
})

每次Uncaught TypeError都会出现此错误:无法设置属性' innerHTML'未定义的。

2 个答案:

答案 0 :(得分:6)

您不需要遍历元素以到达最后一个元素。

此外,您尝试获取event[true]event[false],因为event === (userLen - 1)将返回布尔值,而不是实际索引。

试试这个:

var nodeElememnts = document.querySelectorAll('.username');
if(nodeElements.length > 0){
    nodeElements[nodeElements.length - 1].innerHTML = window.localStorage.getItem('micky');
}

答案 1 :(得分:2)

你可以使用forEach来完成这项工作,例如:



var elm = document.querySelectorAll('.username');
var lastElem = [].slice.call(elm).pop();
if (lastElem) lastElem.innerHTML = 'It Works!';

// For debugging purpose
console.log( [].slice.call(elm) ) //<-- Convert NodeList to Array
console.log( lastElem )
&#13;
<div class="username">A</div>
<div class="username">B</div>
<div class="username">C</div>
&#13;
&#13;
&#13;