2010-05-28 20 views
7

Perché the following code fallisce con:jQuery .parent() non funziona

Error: class_a_jquery_objects[0].parent is not a function

?

HTML:

<div> 
    <div class='a b'></div> 
    <div class='b c'></div> 
    <div class='c a'></div> 
</div>  
<div id='log'></div> 

JS:

$(function() { 
    var class_a_jquery_objects = $(".a"); 

    $("#log").append(class_a_jquery_objects.length + "<br />"); 
    $("#log").append(class_a_jquery_objects[0] + "<br />"); 
    $("#log").append(class_a_jquery_objects[0].parent() + "<br />"); 
}); 

risposta

16

class_a_jquery_objects [0] è un elemento DOM e non un oggetto jQuery. Non puoi chiamare metodi jQuery con esso. È necessario per avvolgere un primo momento in un oggetto jQuery:

$(class_a_jquery_objects[0]).parent() 
+1

class_a_jquery_objects.eq (0) .parent() dovrebbe funzionare pure. – jAndy

+0

Grazie mille per la pronta risposta! –

1

È necessario avvolgerlo con oggetto jQuery

$("#log").append($(class_a_jquery_objects[0]).parent() + "<br />");