Cambiar el color de fondo de "th" al cambiar al inmediatamente siguiente td

Quiero cambiar el color de un elemento 'th' después de realizar un cambio en el elemento 'input' en el elemento 'td' justo al lado.

Aquí está el script jQuery que usé.

$('#phoneNo').change(function () {
    $(this).closest("tr").find("th").css("background-color","yellow");
    });

Código HTML

<tr>
    <th>PhoneNo</th>
    <td><input type="text" id="phoneNo"/></td>
    <th>EmailId</th>
    <td><input type="text" id="emailId"/></td>

</tr>

Se comporta como puedo esperar: cambia el color de fondo de todos los elementos 'th' (tanto PhoneNo como EmailId en el código) en la fila. Pero lo que quiero es cambiar el color de solo un 'th', el que precede al 'td' correspondiente (solo PhoneNo)

preguntado el 03 de mayo de 12 a las 11:05

Oh, podría haber usado 'id' en cada elemento 'th'. tonto de mi Gracias -

2 Respuestas

$('#phoneNo').change(function () {
    $(this).parent().prev("th").css("background-color","yellow");
});

Tenga en cuenta que desde .prev() está buscando hermanos anteriores, primero debe encontrar el elemento td

contestado el 03 de mayo de 12 a las 11:05

$('#phoneNo').change(function () {
    $(this).parent().prev('th').css("background-color","yellow");
});​

Ver violín en http://jsfiddle.net/zSjMh/1/

contestado el 03 de mayo de 12 a las 11:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.