Ich habe eine Tabelle in diesem Format.
%Vor% Ich habe eine Funktion geschrieben, um ein anderes div auf der Maus anzuzeigen.
Jetzt muss ich den 'id' Wert über die Maus bekommen.
Ich habe diese Funktion versucht, aber es gibt einen Nullwert zurück ...
Kann mir jemand helfen?
Ich denke, die anderen machen es dir zu schwer.
Das Problem mit Ihrem Code besteht darin, dass Sie versuchen, ein td
innerhalb eines td
zu finden.
Wenn Sie $(this)
im Kontext einer Ereignisfunktion ausführen, bezieht sich dies auf das Element, dessen Ereignis ausgelöst wurde.
Wenn Sie jedoch die richtige Baumtraversierungsfunktion siblings
und die Pseudoklasse %Co_de% würden Sie in Ihrem Bemühen erfolgreich sein.
Das würde dir alle :hidden
s geben, die versteckt sind. Da Ihr Beispiel nur eine Spalte enthielt, die ausgeblendet war, sollte es ausreichen.
Wenn Sie ein bestimmtes Geschwister möchten, können Sie entweder eine Klasse hinzufügen oder ein Combo td
verwenden.
Der einfachste Weg, um die ID des dritten und letzten :nth-child(n):hidden
zu erhalten, ist die Verwendung einer der Pseudoklassen
Sie können auch Ihre eigene Klasse definieren, wie :last-child
und dann
Hier ist ein funktionierendes JSFiddle-Beispiel | Code
%Vor% Beachten Sie die Verwendung des Selektors, wo ich stattdessen myclass
verwende, so dass die Ereignisse nur ausgelöst werden müssen, sobald Sie eine Tabellenzeile ein- und ausblenden. Dies ermöglicht mir auch, eine Kontextreferenz zu verwenden. Jetzt verweist table tr
auf die Zeile, in der sich der Benutzer befindet, und alle seine untergeordneten Elemente ( $(this)
s) sind darin enthalten.
Ich verwende auch einen Selektor mit einem zweiten Parameter , der den Kontext meiner Auswahl definiert. Standardmäßig ist es das gesamte Dokument.
Dies beschränkt die Auswahl auf das Element, über das der Benutzer schwebt, und auf seine untergeordneten Elemente. Err ... damit meine ich nicht die Benutzer Kinder, sondern die Kinder des Elements.
%Vor% entspricht: td
Wenn du visibility:hidden
anstelle von display:none
wirklich willst, benutze einen Filter ( Edit: als Crab Bucket notiert, finde nur Nachkommen, wenn du die Geschwister suchst):
AFAIK gibt es keinen direkten Weg, nur Selektoren zu verwenden. (Sie könnten das "style" -Attribut überprüfen und eine teilweise Übereinstimmung durchführen, aber das bricht, wenn die style -Eigenschaft aus einer Klasse oder CSS-Datei stammt)
Die Funktion find()
funktioniert für die Nachkommen, so dass $(this).find
das Element hovered nicht findet
Probieren Sie
Sie können einfach den jQuery-Attributselektor und die ".nextAll ()" - Traversierungsmethode verwenden, vorausgesetzt, dass die "id" -Spalte die einzige versteckte Spalte ist. Versuchen Sie Folgendes:
%Vor%Bearbeiten: Korrigierter Selektor, thx zu @mgibsonbr, um zu erwähnen, dass der Selektor ": hidden" das Sichtbarkeitsattribut
nicht abdecktFügen Sie eine eigene Klasse für Ihre versteckten td Tags hinzu: class="divOne versteckt". Jetzt mache folgendes:
%Vor%Tags und Links jquery