2010-03-16 8 views
49

Ich möchte die Hintergrundfarbe der Tabellenzelle ändern, wenn auf das Optionsfeld in der Zelle geklickt wird.So finden Sie das übergeordnete Element mithilfe von JavaScript

<table> 
    <tr> 
    <td align="center"> 
     <input type="radio" value="foo" 
     onclick="this.parentElement.style.background-color='red';" /> 
    </td> 
    </tr> 
</table> 

Wie erhält man die Elternelementreferenz?

+3

'parentElement' ist ein seltsame und völlig sinnlos IE- einzige Eigenschaft. Die Schreibweise, nach der Sie suchen, ist "parentNode". – bobince

+1

Es wäre vorteilhafter, die echte HTML-Ausgabe zu veröffentlichen, nicht die Java-aromatisierten Tags. 'h: selectOneRadio' könnte leicht in einige verschachtelte HTML-Tags konvertiert werden und die Auswahl des unmittelbaren Elternteils würde nicht funktionieren. – DisgruntledGoat

Antwort

125

Mit Ebene javascript:

element.parentNode 

In jQuery:

element.parent() 
+0

Ich habe es versucht, aber es funktioniert nicht Achaius

+0

'this' In Ihrem Fall muss ein jQuery-Element sein. probiere '$ (this)'. –

+24

+1 für nicht nur eine jQuery Antwort geben –

2

Verwenden Sie das Änderungsereignis der Auswahl:

$('#my_select').change(function() 
{ 
    $(this).parents('td').css('background', '#000000'); 
}); 
+1

Er markierte es als jQuery? – ryanulit

Verwandte Themen