Wie td der Tabelle mit Javascript auswählen?

7

Ich weiß, das ist eine sehr einfache Frage, aber ich konnte die Antwort nirgends finden. Nur Antworten verwenden jQuery, nicht reines JS. Ich habe den folgenden Code ausprobiert und es funktioniert nicht. Ich weiß nicht warum.

%Vor%

Das funktioniert auch nicht:

%Vor%

Was mache ich falsch? Was ist der beste Weg, dies zu tun?

BEARBEITEN: Ich habe tatsächlich die ID von meinem Tisch. Preety dumm, ich weiß. So sieht mein HTML aus:

%Vor%

Um meine Absichten klarer zu erklären & gt; Ich möchte ein Tic Tac Toe Spiel machen. Für den Anfang möchte ich auf die & lt; td & gt; und in der Lage sein, die ID dieses bestimmten & lt; td & gt ;. Wie man es am effizientesten macht?

    
oFca 14.12.2011, 16:46
quelle

6 Antworten

13

Diese d = t.getElementsByTagName("tr") und diese r = d.getElementsByTagName("td") sind beide arrays . Die getElementsByTagName gibt eine Sammlung von Elementen zurück, selbst wenn nur eine gefunden wurde.

Sie müssen also so vorgehen:

%Vor%

Platzieren Sie den Index des Arrays so, wie Sie auf die Objekte zugreifen möchten.

Beachten Sie, dass getElementById , wie der Name sagt, nur das Element mit passender ID erhält, also muss Ihre Tabelle wie <table id='table'> und getElementsByTagName nach dem Tag sein.

BEARBEITEN:

Nun, diesen Beitrag weiterführend, denke ich, dass du das tun kannst:

%Vor%

Probieren Sie es aus!

    
user898741 14.12.2011, 16:49
quelle
4

probiere document.querySelectorAll("#table td");

aus     
Nick Shvelidze 14.12.2011 16:49
quelle
2
%Vor%

muss sein:

%Vor%

Weil getElementsByTagName eine NodeList Array-ähnliche Struktur liefert. Sie müssen also die Rückkehrknoten durchlaufen und dann r wie oben ausfüllen.

    
Joe 14.12.2011 16:49
quelle
0

Es gibt viele Möglichkeiten, dies zu erreichen, und das ist nur einer von ihnen.

%Vor%     
Sameera Thilakasiri 14.12.2011 16:49
quelle
0

Es erscheinen einige Antworten, die annehmen, dass Sie alle <td> -Elemente von #table erhalten möchten. Wenn ja, ist der einfachste browserübergreifende Weg, dies zu tun, document.getElementById('table').getElementsByTagName('td') . Dies funktioniert, weil getElementsByTagName nicht nur direkte Kinder zurückgibt. Keine Schleifen sind erforderlich.

    
duri 14.12.2011 16:53
quelle
0

Es gibt auch die rows und cells Mitglieder;

%Vor%     
Alex K. 14.12.2011 16:55
quelle