11
Tengo una fila de tabla, y dentro de eso, tengo una td (lo que representa). Me gustaría cambiar el atributo de clase del TR en el que está mi TD sin usar una ID o un nombre. De esa manera:Acceso de Javascript TR desde TD
<tr>
<td onclick="[TR].setAttribute('class', 'newName')">My TD</td>
</tr>
¿Cómo lo hago?
es increíble la cantidad de respuestas han ido straigh t para jQuery (a pesar de ser la cosa * más simple posible, incluso en DOM antiguo), y luego todavía tiene la sintaxis incorrecta. – bobince
Eso se debe a que la respuesta ha cambiado después de haber respondido algunas preguntas. – Joop
Respuesta
td
stands para datos de la tabla ..ahora .. en su caso de que necesite la propiedad
parentNode
deltd
..o como bobince sugirió en su comentan
Fuente
2010-03-26 15:24:49
+1 para resolver el problema sin usar la ID (como se solicita en la pregunta) o confiar en Jquery – thecoshman
¡PERFECTO! datos de la tabla ... Ya veo. ¡Gracias! – arik
'setAttribute ('clase')' no funciona bien en IE6-7. Hay muchos atributos en los que IE se equivoca: evite 'getAttribute' /' setAttribute' en los documentos HTML por este motivo. En su lugar, use las propiedades HTML DOM Nivel 1: 'this.parentNode.className = 'newName'' es más compatible y más legible. – bobince
jQuery es probablemente la forma más fácil de hacer esto, puede utilizar selectores tales como:
Para agregar una clase de 'rojo' a todos los de pa en table.mytable. Esa es solo la punta del iceberg. Comprueba que debe hacer lo que necesites.
Fuente
2010-03-26 15:18:10 DCD
Eso no responde la pregunta en absoluto. Básicamente, simplemente le dijiste que buscara cómo usar jQuery. No es útil en absoluto. –
En jQuery, que sería muy sencillo si se tiene la referencia a su td:
Si realmente no quiere tener una dependencia de jQuery, entonces se podría simplemente hacer un bucle conseguir parentNode y verificando su tipo como una solución más general. En este caso, puede obtener el parentNode ya que tr es siempre un padre directo de td. Se puede hacer algo como esto (en cuenta que esto no ha sido probado):
Fuente
2010-03-26 15:19:43
se da cuenta de que entonces todos los
Sí, he reparado la respuesta para señalar que el mío es un script de propósito más general. –
Debe ser parent.nodeName === "TR" en lugar de parent.nodeName = "TD" – Ms2ger
Si puede utilizar jQuery que podría ser algo como esto
Para su código
Fuente
2010-03-26 15:20:24 rahul
Sin cualquier marco adicional:
Fuente
2010-03-26 15:21:08 Joop
Eso no lo está obteniendo basado en un td. –
si tiene el elemento dom en javascript, puede usar .parentNode() que le dará el nodo perant, que debería ser la fila de la tabla. entonces se puede establecer .className
Fuente
2010-03-26 15:22:00 thecoshman
Es en realidad parentNode. –
Gracias, actualizado. – thecoshman
en javascript es solo: ** document.getElementById ("someTDitem"). ParentNode.style.background = '# 77dd77'; ** – Fattie
Cuestiones relacionadas