2014-10-05 64 views
1

我有一个按字母分组的名称列表。 示例代码:JQuery检查下一个可见元素是否具有相同的类

<label class="alphabet_selector">A</label> 
    <label>Apple</label> 
<label class="alphabet_selector">B</label> 
    <label>Book</label> 
    <label>Baby</label> 
<label class="alphabet_selector">H</label> 
    <label>Help</label> 
    <label>Hello</label> 
    <label>How</label> 
<label class="alphabet_selector">Z</label> 
    <label>Zebra</label> 
    <label>Zip</label> 
    <label>Zoo</label> 

假设开始B所有标签和Hdisplay: none。 所以<label class="alphabet_selector">B</label><label class="alphabet_selector">H</label>必须隐藏。我怎样才能实现这个使用jQuery? 我尝试下面的代码,但它不工作:

$(".alphabet_selector").each(function() { 
    if ($(this).next(".alphabet_selector").length == 1){ 
     $(this).css("display", "none"); 
    } 
}); 

我觉得因为.next回报与display: none标签。

小提琴:http://jsfiddle.net/ff4qh0y7/

+1

'$(本)。接下来( “alphabet_selector:可见”)' – melancia 2014-10-05 20:28:29

+0

感谢您的评论。但这并不能解决问题。问题是'$(this).next(“。alphabet_selector”)不会返回alphabet_selector。而是返回第一个标签,它具有'display:none' – Agha 2014-10-05 20:33:23

+0

您的代码和问题没有任何意义。你想做什么? – melancia 2014-10-05 20:35:35

回答

1

可以使用nextAllfirst获得下一个可见元素并检查它是否使用is是一个.alphabet_selector

代码:

$(".alphabet_selector").each(function() { 
    if ($(this).nextAll(":visible").first().is(".alphabet_selector")){ 
     $(this).css("display", "none"); 
    } 
}); 

演示:http://jsfiddle.net/0dff337g/

+0

谢谢。有效! – Agha 2014-10-05 20:49:30

相关问题