2012-07-21 53 views
20

Tengo el siguiente:¿Cómo puedo encontrar el padre tr de un td usando jQuery?

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

Lo que me gustaría hacer es eliminar cualquier clase que comienza con "X" y dar a la fila que está contenida por "tdToPad" una clase de "X" + pad

Algo así como:

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

Siendo que toToPad se refiere al elemento td en una fila. ¿Cómo puedo darle al padre tr la clase "X-" + pad? Creo que necesito algo como lo siguiente, pero si esa es la manera correcta de hacerlo, ¿cómo puedo eliminar los elementos que ya existen con una clase de "X-" algún valor y luego darle a este elemento la clase correcta?

tdToPad.Parent('tr') 

Respuesta

41

Puede utilizar closest() método:

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) 

actualización:

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

Es posible que ya haya una clase allí con "X-" seguido de un número. ¿Hay alguna manera de que pueda eliminar esto antes de agregar la nueva clase? – Alan2

+0

@Gemma Sí, puede eliminar la clase y luego agregar otra, intente con la respuesta actualizada. – undefined

+0

gracias, pero ¿cómo puedo eliminar solo las clases que tienen "X-" al comienzo de sus nombres? En tu ejemplo, simplemente pones el nombre de clase 'clase'. Lo que tengo es que la clase podría ser cualquier cosa que comience con "X-" y puede que ya exista o no una allí. Solo quiero reemplazar con la última. Gracias – Alan2

6

Ya casi derecha. Simplemente use la ortografía correcta para parent() (docu) y agregue una llamada addClass() (docu).

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

¿Es mejor usar parent o más cercano? ¿Puedo eliminar cualquier clase? ya está allí, que comienza con X-? – Alan2

Cuestiones relacionadas