2010-05-28 12 views
7

Dlaczego the following code nie powiedzie się z:jQuery .parent() nie działa

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 />"); 
}); 

Odpowiedz

16

class_a_jquery_objects [0] jest elementem DOM i nie jest przedmiotem jQuery. Nie można z nią wywoływać metod jQuery. Trzeba najpierw zawinąć go w obiekcie jQuery:

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

class_a_jquery_objects.eq (0) .parent() powinien pracować również. – jAndy

+0

Wielkie dzięki za szybką odpowiedź! –

1

trzeba zawinąć go z obiektu JQuery

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