我有几个具有相同类的div,所以首先我想找到哪个具有重复的类名,然后我想要隐藏除第一个之外的所有div
<div class="jquery"> </div>
<div class="jquery"></div>
需要帮助
由于
答案 0 :(得分:5)
jQuery's slice第一个元素:
$('.jquery').slice(1).hide()
<小时/> 编辑:查找重复项
var duplicated = {},
class;
$('div').each(function() {
class = $(this).attr('class');
duplicated[class] = (duplicated[class] | 0) + 1
})
for (var key in duplicated) {
if (duplicated.hasOwnProperty(key) && duplicated[key] > 1) {
$('div.' + key).slice(1).hide()
}
}
答案 1 :(得分:2)
你不应该有多个id
,你可以做的课
$("div.jquery:not(:first)").hide();
或
$("div.jquery:gt(0)").hide();
这里是小提琴http://jsfiddle.net/674nF/
找出是否有多个具有相同类名的div可以做
if($(".jquery").length>1){
// more than one divs have class jquery
}
操纵具有类jquery
$(".jquery").each(function(index,j){
$(this).attr("rel","div number"+index); //this will refer to each respective div having class jquery, for each iteration
});
答案 2 :(得分:2)
这不会帮助您确定哪些类名重复,但它会隐藏欺骗。
$('.duplicated_class_name').slice(1).hide()
[edit]在下面添加了真实的解决方案和评论:
(function($){
var
classes = {},
dupes = {};
$('div')
.each(function(index, elem){
$.each(
elem.className.split(/\s+/),
function(index, name) {
if (name) {
classes[name] = (classes[name] || 0) + 1;
if (classes[name] > 1) {
dupes[name] = classes[name];
}
}
}
);
});
$.each(
dupes,
function(name) {
$('.' + name)
.slice(1)
.hide();
}
);
})(jQuery);
注意:我真诚地怀疑您确实想要这样做,因为它可能会对您的UI产生意想不到的后果。也就是说,您几乎肯定会隐藏您真正希望继续展示的内容。
您几乎肯定希望通过提供预定义的白名单来过滤要隐藏的类,或者至少是某个国王的匹配函数(如正则表达式)。祝你好运!
答案 3 :(得分:0)