2012-07-21 4 views
20

Ich habe folgendes:Wie kann ich den Eltern-Tr von einem TD mit jQuery finden?

tdToPad = tds.filter('[id^="input_Title_"]') 
    pad = 60; 
    tdToPad.css('margin-left', pad); 

Was würde ich zu tun ist, wie jede Klasse zu entfernen, die mit „X“ beginnt, und geben Sie die Zeile, die von „tdToPad“ eine Klasse von „X“ enthalten ist + Pad.

Etwas wie:

<tr class='X-60'> 
    <td> 
    </td> 
</tr> 

Ist, dass toToPad zum td-Element in einer Reihe bezieht. Wie kann ich dem Elternteil die Klasse "X-" + Pad geben? Ich denke, ich brauche etwas wie das Folgende, aber wenn das der richtige Weg ist, wie kann ich dann bereits vorhandene Elemente mit einer Klasse von "X-" somevalue entfernen und dann diesem Element die richtige Klasse geben?

tdToPad.Parent('tr') 

Antwort

41

Sie können closest() Methode verwenden:

Get the first element that matches the selector, beginning at the current element and progressing up through the DOM tree.

tdToPad.closest('tr') 
     .addClass('X-' + pad) 

Update:

tdToPad.closest('tr').get(0).className = tdToPad.closest('tr').get(0).className.replace(/\bX\-.*?\b/g, ''); 
tdToPad.closest('tr').addClass('X-' + pad) 
+0

Möglicherweise ist dort bereits eine Klasse mit "X-" gefolgt von einer Nummer. Gibt es eine Möglichkeit, diese vor dem Hinzufügen der neuen Klasse zu entfernen? – Alan2

+0

@Gemma Ja, Sie können die Klasse entfernen und dann eine andere hinzufügen, versuchen Sie die aktualisierte Antwort. – undefined

+0

danke, aber wie kann ich nur Klassen entfernen, die "X-" am Anfang ihrer Namen haben? In deinem Beispiel gibst du einfach den Klassennamen "class" an. Was ich habe, ist, dass die Klasse alles sein kann, was mit "X-" beginnt und dort vielleicht schon existiert. Ich möchte nur mit dem neuesten ersetzen. Danke – Alan2

6

Sie sind fast richtig. Verwenden Sie einfach die korrekte Schreibweise für parent() (docu) und fügen Sie einen addClass() (docu) Aufruf dazu hinzu.

tdToPad.parent('tr').addClass('X-' + pad); 
+0

Ist es besser, Eltern oder am nächsten zu verwenden? Kann ich Klassen entfernen schon da was mit X- anfangen? – Alan2

Verwandte Themen