2010-10-08 2 views
17

Как я могу захватить вложенный элемент «4»?jquery inested selector

Я пробовал:

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

и:

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

пример:

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

ответ

21

Используйте .text() здесь вместо, как это:

$("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, как вы можете видеть выше, ваш селектор является гибким, используйте то, что работает на вашей общей разметке. .val() - для элементов типа ввода, например. <input>, <select>, <textarea>, <button> ... чтобы получить текст внутри любого другого элемента, вместо этого используйте .text().

+0

ах, да ... я знал, что это было что-то так просто мой мозг взорвется. Благодарю. – holden

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

но не

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

потому Селектор потомков: потомок элемента может быть ребенок, внук, правнук, и так далее, из этого элемента. child selector: Выбирает все прямые дочерние элементы, указанные «дочерним» элементом, указанным «parent».

ссылка child selector descendant selector