2010-07-06 97 views
1

我有这样的jQuery选择标签第一选择

$('.accordion label').live('click',function() { 
    alert("hello clicky clicky"); 
} 

,但如果我这样做

$('.accordion label:first').live('click',function() { 
    alert("hello clicky clicky"); 
} 

它的目标是第一手风琴的标签,而不是每一个手风琴的第一个标签

会有人请帮忙

编辑

HTML

<fieldset class="horizontal accordion"> 
    <label class="categorylabel"><div class="accordion_open"></div>Editor Information</label> 
    <ul> 
    <li> 
    <label for="editor" id="editorL"><div class="accordion_open"></div>Editor Name</label> 
    <input id="editor" name="editor" class="force_clean" value="" type="text"> 
    </li>   
    </ul> 
    </fieldset> 

回答

6

使用first-child选择,而不是first

first给你整个集合中的第一个实例。

first-child给你的每一个在它的父母的第一个孩子的集合。

$('.accordion > label:first-child').live('click',function() { 
    alert("hello clicky clicky"); 
} 

或者只是使用您提供的类名(假设每个手风琴都是相同的)。

$('.accordion > .categorylabel').live('click',function() { 
    alert("hello clicky clicky"); 
} 
+0

针对每个标签 – mcgrailm 2010-07-06 15:40:13

+1

@mcgrailm - 我从您的HTML中看到,您有额外的嵌套'标签'元素。这是一个简单的修复。只需将'>'放置在选择器中,使其仅针对直接的孩子。另外,你可以简单地使用'.categorylabel'类。我会用两个更新我的答案。 – user113716 2010-07-06 15:45:07

+0

真棒谢谢 – mcgrailm 2010-07-06 15:50:04