2017-10-20 29 views
1

ここでは多くのソリューションを試しましたが、私にとってはうまくいきませんでした。私はノード要素をループしています。最後のものに行きたいので、私はそれを更新します。forEach()の最後の要素に到達する方法JS

Uncaught TypeError:未定義のプロパティ 'innerHTML'を設定できません。

+0

===( userLen - 1)] 'になる? 'event ===(userLen - 1)'は 'true'か' false'です( 'event'は常にHTMLElementになり、' userLen-1'は常に数字になるので実際は 'false'です) ;あなたはそこで何を比較しているのですか?)、 'event [true]'または 'event [false]'にアクセスしています。どちらも 'undefined'です。これは意味がありません。単一の 'HTMLElement'からいくつかのインデックスにアクセスしようとしているからです。 – Xufox

答えて

6

最後の要素に到達するために要素をループする必要はありません。

また、あなたはブール値ではなく、実際のインデックスを返しますevent === (userLen - 1)としてevent[true]event[false]を取得しようとしています。

これを試してみてください:

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

あなたが好きここforEachを使用してW/Oこれを行うことができます:あなたは `イベント[イベント何を期待し

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)
<div class="username">A</div> 
 
<div class="username">B</div> 
 
<div class="username">C</div>

関連する問題