私は以下のHTMLを持っています。私はclass = "gmvcRow"を持つすべてのDOMを反復しようとしており、各 'gmvcRow'のすべての "gmvcCell"のテキストを取得しています。私はすべてのテキストを配列に入れたいと思っています(['firstname'、 'lastname'、 'dob'、 'city'])。そして、私はこの配列を "配列のgmvcRow"を保持する別の配列に配置したいと思います。私の試みは以下の通りですが、私はまだ成功していません。私は 'gmvcCell'のテキスト自体が別のラベルノードであることを理解しています。JavaScriptでHTMLエンティティを反復処理する方法
<div class="gmvcRow">
<div class="gmvcCell">firtname</div>
<div class="gmvcCell">lastname</div>
<div class="gmvcCell">dob</div>
<div class="gmvcCell">city</div>
</div>
<div class="gmvcRow"></div>
<div class="gmvcRow"></div>
<div class="gmvcRow"></div>
<div class="gmvcRow"></div>
<div class="gmvcRow"></div>
私のコード:それはまた、テキストノードを選択するのでchildNodes
を使用して
var gmvcRowArray = document.getElementsByClassName('gmvcRow');
console.log('number of records: ' + gmvcRowArray.length);
// Master array
var masterArray = [];
// Iterate through array
for(var i=0; i<gmvcRowArray.length; i++){
// Iterate through all childNodes
var rowArray = [];
for(var c=0; c<gmvcRowArray[i].childNodes.length; c++){
c = c + 1; // skip non text node
console.log('c: '+c);
if(gmvcRowArray[i].childNodes[c] != null){
var value = gmvcRowArray[i].childNodes[c].innerHTML;
rowArray.push(value);
//console.log('rowArray.length: '+rowArray.length);
console.log('value: '+value);
}
c = c - 1;
}
// Add row to master array
masterArray.push(rowArray);
console.log('masterArray.lengh: '+masterArray.length);
}
あなたは 'querySelectorAll'を使用して、要素を反復処理する可能性が使用して私の答えです。 – funcoding