2017-12-02 3 views
0

Ich habe eine Tabelle mit js erstellt. Ich habe Klassennamen für einige Zellen vergeben. Ich möchte später auf diese Zellen zugreifen und den Klassennamen entfernen. Aber ich kann es nicht tun. Dies ist, wie ich die Tabelle dynamisch erstellen:Ich konnte nicht auf die Klasse innerhalb der dynamisch erstellten Tabelle zugreifen

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); 
} 

Hier ist, wie ich versuchte, die Zellen für den Zugriff auf und die Klassen entfernen:

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

Es führt den folgenden Fehler:

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

Ich verstehe vage, dass es auf die Elternebene schaut und sieht keine Klasse an, aber es sollte in die td schauen. Habe ich es richtig gesagt? Wenn ja, wie soll ich das erreichen?

+1

Hallo * querySelectorAll * gibt ein Array Sie den Index mit, dass nach, dass Sie Auswahlcode aussehen wie querySelectorAll setzen muss (‚LastRow‘) [0] –

+0

statt 'cell.setAttribute (" Klasse "," Lastrow ");' besser verwenden 'cell.classList.add ('Lastrow')' –

+0

Wow .. Danke Muhammad. Das hat es gelöst. –

Antwort

0

Sie sollten Klasse von allen Elementen in der Schleife entfernen

let lastrows = document.querySelectorAll('.lastrow'); 
for (let i=lastrows.length;i--;){ 
    lastrows[i].classList.remove('lastrow'); 
} 
Verwandte Themen