11
Ich habe eine Tabellenzeile, und innerhalb dieser habe ich eine td (was auch immer es steht). Ich möchte das Klassenattribut des TR ändern, in dem sich mein TD befindet, ohne eine ID oder einen Namen zu verwenden. So ähnlich:Javascript Zugriff TR von TD
<tr>
<td onclick="[TR].setAttribute('class', 'newName')">My TD</td>
</tr>
Wie mache ich das?
Es ist erstaunlich, wie viele Antworten straigh gegangen t für jQuery (obwohl dies die * einfachst mögliche * Sache ist, die man selbst in einfachem alten DOM macht), und dann immer noch die Syntax falsch hat! – bobince
Das ist, weil die Antwort geändert wurde, nachdem einige Fragen gegeben wurden. – Joop
Antwort
td
steht für Tabellendaten ..jetzt .. in Ihrem Fall müssen Sie die
parentNode
Eigenschaft destd
..oder als bobince gesetzt vorgeschlagen in seinem Kommentar
Quelle
2010-03-26 15:24:49
+1 für die Lösung von Problemen mit der Verwendung von ID (wie in Frage gestellt) oder unter Berufung auf Jquery – thecoshman
PERFEKT! Tabellendaten ... Ich verstehe. Vielen Dank! – arik
'setAttribute ('class')' funktioniert nicht richtig in IE6-7. Es gibt viele Attribute, bei denen der IE es falsch interpretiert: Vermeiden Sie 'getAttribute' /' setAttribute' aus diesem Grund in HTML-Dokumenten. Verwenden Sie stattdessen HTML-Eigenschaften von DOM Level 1: 'this.parentNode.className = 'newName'' ist kompatibler und besser lesbar. – bobince
jQuery ist wahrscheinlich der einfachste Weg, dies zu tun, Sie Selektoren wie verwenden können:
So fügen Sie eine Klasse von ‚rot‘ auf alle tr des in table.mytable. Das ist nur die Spitze des Eisbergs - schau es dir an, es sollte tun, was du brauchst.
Quelle
2010-03-26 15:18:10 DCD
Das beantwortet die Frage überhaupt nicht. Du hast ihm im Grunde gesagt, er soll nachsehen, wie man jQuery benutzt. Überhaupt nicht nützlich. –
In jquery, wäre es wirklich einfach, wenn Sie den Verweis auf Ihre td haben:
Wenn Sie wirklich eine Abhängigkeit von jQuery nehmen Sie nicht wollen, dann könnte man einfach eine Schleife tun bekommen der parentNode und die Überprüfung des Typs als allgemeinere Lösung. In diesem Fall könnten Sie einfach den Elternknoten erhalten, da tr immer ein direkter Elternteil von td ist. Sie können etwas tun (man beachte dies nicht getestet wurde):
Quelle
2010-03-26 15:19:43
Sie erkennen, dass, wenn Sie die HTML
Ja, ich habe die Antwort korrigiert, um festzustellen, dass es sich um ein Skript für allgemeinere Zwecke handelt. –
Sollte parent.nodeName === "TR" anstelle von Parent sein.nodeName = "TD" – Ms2ger
Wenn Sie jQuery verwenden kann es so etwas wie dieses
Für Ihren Code
Quelle
2010-03-26 15:20:24 rahul
werden könnten, ohne irgendein zusätzliches Rahmenwerk:
Quelle
2010-03-26 15:21:08 Joop
Das ist nicht auf einem td basiert. –
Wenn Sie das dom-Element in JavaScript haben, können Sie .parentNode() verwenden, was Ihnen den perant-Knoten gibt, der die Tabellenzeile sein sollte. dann können Sie .className
Quelle
2010-03-26 15:22:00 thecoshman
Es ist tatsächlich parentNode. –
Danke, aktualisiert. – thecoshman
in Javascript ist es nur: ** document.getElementById ("someTDitem"). ParentNode.style.background = '# 77dd77'; ** – Fattie
Verwandte Themen