2010-05-28 26 views
7

Por qué the following code falla con:jQuery .parent() no funciona

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

Respuesta

16

class_a_jquery_objects [0] es un elemento DOM y no un objeto jQuery. No puede llamar a los métodos de jQuery. Es necesario para envolver por primera vez en un objeto jQuery:

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

class_a_jquery_objects.eq (0) .parent() debería funcionar también. – jAndy

+0

¡Muchas gracias por la pronta respuesta! –

1

Necesitas envolverlo con objeto jQuery

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