我寫過這段代碼。它不工作,但有了這個,你應該知道我想要實現什麼jquery搜索下一個div
$('.jfmfs-alpha-separator').filter(function() {
return ($(this).next().not(".hide-filtered").hasClass("jfmfs-alpha-separator"));
}).addClass('hide-filtered');
我有相同級別的div數。下面的div與類jfmfs-alpha-separator我有divs的數量,然後div jfmfs-alpha-separator和divs的數量(注意下面我的意思是在同一級別而不是孩子)。現在當所有遵循jfmfs-alpha-separator的div都得到class .hide-filtered我想隱藏那個jfmfs-alpha-separator div。
在我的代碼我試圖找到類jfmfs-α-分離器,其不具有「隱藏過濾」級,並具有jfmfs-α-分離器類的div後下一格。如果這個檢查retivns真實我隱藏那個div。
例子:
<div class ="jfmfs-alpha-separator">Letter A</div>
<div class ="friend hide-filtered">Aaron</div>
<div class ="friend hide-filtered">Aaron</div>
<div class ="friend hide-filtered">Ashutosh</div>
<div class ="jfmfs-alpha-separator">Letter B</div>
<div class ="friend hide-filtered">Bob</div>
<div class ="friend">Baron</div>
<div class ="friend hide-filtered">Batista</div>
<div class ="jfmfs-alpha-separator">Letter C</div>
<div class ="friend hide-filtered">Carl</div>
<div class ="friend hide-filtered">Chris</div>
<div class ="friend hide-filtered">Charlie</div>
<div class ="jfmfs-alpha-separator">Letter D</div>
...
在上面的例子中字母A和C應該得到隱藏,因爲它下面的所有名字已經得到了隱藏過濾類和B字母應該保持原樣。
我該如何做到這一點?
最終解決方案是使用Salmans答用於:
$(".jfmfs-alpha-separator").each(function() {
if ($(this).nextUntil(".jfmfs-alpha-separator").not('.hide-filtered').length == 0) {
$(this).addClass('hide-filtered');
}else{
$(this).removeClass('hide-filtered');
}
});
謝謝我做了輕微的修改並使用它。我無法在1行中完成,我也使用每個函數循環。 –