2011-01-30 2 views
2

HI я следующая проблема, у меня есть список уль как этотJquery получить элементы

<ul class="ul"> 
    <li id="li1"> 
     <span class="widget"> 
      <input name='try1' value="try1" class="param" /> 
     </span> 
     <ul> 
      <li class="li2"> 
       <span class="widget"> 
        <input name='try1' value="try1" class="param" /> 
        <input name='try2' value="try2" class="param" /> 
       </span> 
      </li> 
     </ul> 
    </li> 
<li id="2"></li> 
</ul> 

моей проблемы, когда я пытаюсь получить входы таким образом

$('#li1 .param').each(function(){ 
     alert($(this).attr('name')); 
    }); 

каждый возвращается ко мне try1 try1 try2 Но мне нужны только эти между промежутками, если кто-то знает, как их получить? Спасибо заранее!

+1

более конкретно, все входы в этом коде ARE внутри метки диапазона ... –

+0

Просьба уточнить. – SLaks

ответ

3

Трудно понять, но я предполагаю, что вы хотите, чтобы вы хотели только те, которые спускаются с ребенка. <span> Элемент вместо всех <span> элементов.

Если да, то это:

$('#li1 > span .param').each(function(){ 
    alert($(this).attr('name')); 
}); 

Это использует в child-selector(docs) целевой .param элементы, которые происходят из <span> элемента, который является потомком #li1.

+0

Спасибо вам большое, что мне нужно – Alex

+0

@Alex: Добро пожаловать. : О) – user113716

1

Похоже, что вы не хотите, чтобы .param с внутри вложенного <ul>.

Вы можете написать $('#li1>.widget .param'), чтобы получить все .param с в .widget s непосредственно внутри #li1.

Смежные вопросы