大概是这样的吧?
$('.categories').filter(function(){ //use filter on all .categories
var txt = $.trim(this.innerHTML); //Get the text of current
return ($(this).nextAll().filter(function () { //filter all of the proceeding siblings which has the same text
return $.trim(this.innerHTML) === txt
}).length); //send true or false (in fact truthy or falsy to ask to hide the current element in question)
}).hide();
小提琴
另一个衍生品,这将隐藏第一个衍生品,而前一个衍生品将隐藏最后一个衍生品。
$(function () {
$('.categories').each(function(){
var txt = $.trim(this.innerHTML);
$(this).nextAll(':visible').filter(function () {
return $.trim(this.innerHTML) === txt
}).hide();
});
});
小提琴
另一种方法需要更少的迭代并创建一个带有要隐藏元素的索引的选择器。
$(function () {
var arrText = [];
$(($('.categories').map(function(){
var txt = $.trim(this.innerHTML);
if(arrText.indexOf(txt) == -1)
arrText.push(txt);
else
return('.categories:eq(' + $('.categories').index(this) + ')'); //create the selector with eq
}).get().join(','))).hide();
});
小提琴