2017-12-02 17 views
0

jsを使用してテーブルを作成しました。私はいくつかの細胞のクラス名を与えました。これらのセルに後でアクセスして、クラス名を削除したいと思います。しかし、私はそれをすることができません。これは私が動的にテーブルを作成する方法である:ここでは動的に作成されたテーブル内のクラスにアクセスできません

for (var j = 0; j < TotalNumOfPlayers; j++) 
{ 
    // Create a <td> element and a text node, make the text 
    // node the contents of the <td>, and put the <td> at 
    // the end of the table row 
    var cell = document.createElement("td"); 
    if (header) 
    { 
    var cellText = document.createTextNode(nameOfPlayers[j]); 
    } 
    else 
    { 
    var cellText = document.createTextNode(oldScore[j]);  
    cell.setAttribute("class", "lastrow"); 
    } 
    cell.appendChild(cellText); 
    row.appendChild(cell); 
} 

は、私はセルにアクセスし、クラスを削除しようとした方法です:

document.querySelectorAll(".lastrow").classList.remove("lastrow"); 

それは次のようなエラーがスローされます。

Cannot read property 'remove' of undefined at :1:48

私はそれが親レベルを見ていることをぼんやりと理解しており、クラスは添付されていないと見ていますが、それはTD内を見ているは​​ずです。私はそれを正しく得たか?はいの場合は、どうすればいいですか?

+1

こんにちは* querySelectorAll *内のすべての要素からクラスを削除する必要がありますが、querySelectorAll(「LASTROW」)のようなもの、あなたの選択のコードを見た後、それにインデックスをつけなければならない配列を返す[0] –

+0

代わりに 'cell.setAttribute(" class "、" lastrow ");' cell.classList.add( 'lastrow') ' –

+0

を使ってください。Muhammadに感謝します。それがそれを解決しました。 –

答えて

0

あなたはループ

let lastrows = document.querySelectorAll('.lastrow'); 
for (let i=lastrows.length;i--;){ 
    lastrows[i].classList.remove('lastrow'); 
} 
関連する問題