2011-01-30 132 views
2

您好我有以下的問題,我有一個UL列表像這樣的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

更爲具體,該代碼中的所有輸入均位於範圍標記內... – 2011-01-30 21:08:49

+0

請澄清。 – SLaks 2011-01-30 21:09:06

回答

3

很難理解,但我認爲你的意思是說你只想要那些從子元素<span>而不是所有<span>元素中下來的元素。

如果是這樣,這樣做:

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

它使用的child-selector(docs)爲目標,從一個<span>元素是#li1孩子下降.param元素。

1

這聽起來像你不希望在嵌套<ul>內的.param s。

你可以寫$('#li1>.widget .param')讓所有.param S IN .widget小號直接#li1