2010-10-08 16 views
17

¿Cómo puedo tomar el elemento anidado "4"?jquery selector anidado

me trataron:

var nights = $("div.nights h5 div.num").val(); 

y:

var nights = $("div.nights > h5 > div.num").val(); 

ejemplo:

<div class="nights"> 
     <h5 class="biguns"> 
      <div class="num">4</div> 
      Nights 
     </h5> 
</div> 

Respuesta

21

Uso .text() aquí en su lugar, como este:

$("div.nights h5 div.num").text() 
//or this works too: 
$("div.nights > h5 > div.num").text() 
//or just 
$("div.num").text(); 

You can test it here, como puede ver arriba, su selector es flexible, use lo que funcione en su marcado general. .val() es para elementos de tipo de entrada, p. <input>, <select>, <textarea>, <button> ... para obtener el texto dentro de cualquier otro elemento, use .text() en su lugar.

+0

ah, sí ... Yo sabía que era algo tan simple mi cerebro iba a explotar. Gracias. – holden

2
$("div.nights div").text() 

pero no

$("div.nights > div").text() 

porque selector de descendiente: Un descendiente de un elemento podría ser un niño, nieto, bisnieto, y así sucesivamente, de ese elemento. selector de elementos secundarios: Selecciona todos los elementos hijo directos especificados por "hijo" de elementos especificados por "padre".

referencia child selector descendant selector