2009-11-02 13 views
18

Ich habe eine Tabelle, mit den Zeilen, contaning Zellen finden - und einige von ihnen einen img enthalten wie folgt:jQuery: nächste table-row

<img id="FormView1_btnSave_row1%1%new" style="border-width: 0px; cursor: pointer;" 
src="grafik/ok_16x16.gif" onclick="cleverStuff(this)"/> 

In der Funktion cleverStuff Ich möchte auf der Linie bedienen das folgt der Zeile, in der die Schaltfläche angeklickt wurde - diese spezielle Schaltfläche ist nur in der letzten sichtbaren Zeile enthalten, es gibt eine Reihe verdeckter Zeilen darunter, und ich möchte die erste versteckte Zeile sichtbar machen - aber ich komme nicht zur nächsten Linie. Mein Verständnis war, dass alle Kombination von parent() und next() verwendet werden könnte, um von der Img zum td, zum tr und schließlich zum nächsten tr. Also habe ich versucht, dies zu überprüfen:

$(ctrl).attr('id') richtig die IMG id zurück :)

$(ctrl).parent().attr('id') NULL zurück.

Was fehlt mir hier?

+0

gut benutzen können, was ist der HTML-Code für die Eltern img? Hat es eine ID? – Victor

Antwort

60

Dies sollten Sie die umschließenden tr des Elements geben, auch wenn es nicht das direkte Eltern-Element ist, dann nächste Zeile der dieser Zeile. Wenn Sie übergeordnete Elemente für ein Element innerhalb eines TD verwenden, erhalten Sie die Spalte und nicht die Zeile. Durch die Bereitstellung eines Filters für die parent() -Methode wird das übergeordnete Element einfach herausgefiltert, es sei denn, es stimmt mit dem Filter überein, was normalerweise dazu führt, dass keine übereinstimmenden Elemente vorhanden sind. Am nächsten ist wahrscheinlich, was Sie wollen, aber Eltern ('tr') könnten benötigt werden, wenn Sie geschachtelte Tabellen haben und die äußere Reihe anstelle der inneren Reihe wollen.

$(this).closest('tr').next('tr') 
+0

+1 Ich habe sie immer verwechselt: | – Greg

+0

das gibt mir den vorherigen tr zurück. :/ – AlphaMale

+2

@AlphaMale das scheint mir nicht möglich – tvanfosson

30

Sie zeigen uns nicht genug HTML wirklich, aber diese funktionieren sollte:

$(ctrl).parent('tr').next(); 
+0

Danke Greg - du warst sehr schnell und hast mich auf den richtigen Weg gebracht: ich habe mein leeres "Elternteil" durch Eltern (tr) ersetzt und plötzlich sah es besser aus :) Wird den "Check" geben und wenn möglich auch bewerten Sie toby und tvanfosson, die in derselben Richtung geantwortet haben. – MBaas

+0

@ tvanossons Antwort ist besser – Greg

5

Vielleicht haben die Eltern-Element Satz seine ID nicht wahr? Um in die nächste Zeile aus dem Bild glaube ich, die Sie tun können:

$(this).parent('tr').next('tr') 
1

Ich hoffe, u

jQuery(this).parents('tr');