高级jQuery查找
我得到了以下重复语法,我想保留所有后面至少有一个not hidden div的高级jQuery查找,jquery,show-hide,Jquery,Show Hide,我得到了以下重复语法,我想保留所有后面至少有一个not hidden div的,但删除其余孤立的: 不幸的是,它不会隐藏任何,我也不知道为什么,尽管我怀疑:hidden属性就是问题所在应该注意,在我的真实代码中,隐藏的不是通过“display:none”隐藏的,而是通过使用jQuerys.hide() 希望有人能帮忙。我能想到的最干净的解决方案: $('h1').each(function(){ if ( $(this).nextUntil('h1').not(':hidden').leng
,但删除其余孤立的
:
不幸的是,它不会隐藏任何
,我也不知道为什么,尽管我怀疑:hidden
属性就是问题所在应该注意,在我的真实代码中,隐藏的
不是通过“display:none”隐藏的,而是通过使用jQuerys.hide()
强>
希望有人能帮忙。我能想到的最干净的解决方案:
$('h1').each(function(){
if ( $(this).nextUntil('h1').not(':hidden').length == 0 ) $(this).hide();
});
这里的示例:我能想到的最干净的解决方案:
$('h1').each(function(){
if ( $(this).nextUntil('h1').not(':hidden').length == 0 ) $(this).hide();
});
这里的例子:这就是你想要的吗 对于每个H1,在下一个H1之前找到所有元素,如果它们都隐藏,则隐藏此H1
$('h1').each(function() {
var elems = $(this).nextUntil('h1');
var elemsHidden = false;
for (var i = 0; i < elems.length; i++) {
if ($(elems[i]).is(':hidden')) {
elemsHidden = true;
} else {
elemsHidden = false;
}
}
if (elemsHidden) {
$(this).hide();
}
});
JSFiddle这就是你想要的吗 对于每个H1,在下一个H1之前找到所有元素,如果它们都隐藏,则隐藏此H1
$('h1').each(function() {
var elems = $(this).nextUntil('h1');
var elemsHidden = false;
for (var i = 0; i < elems.length; i++) {
if ($(elems[i]).is(':hidden')) {
elemsHidden = true;
} else {
elemsHidden = false;
}
}
if (elemsHidden) {
$(this).hide();
}
});
JSFiddle您只需选择隐藏的
div
,然后查找上一个h1
。它减少了代码并保持简单
$('div:hidden').prev('h1').hide();
jshiddle在这里您只需选择隐藏的
div
,然后找到prevh1
。它减少了代码并保持简单
$('div:hidden').prev('h1').hide();
jshiddle这里OP不想隐藏第二个H1Oh。。第一句话很让人困惑。希望删除所有。但不是真的把所有的都去掉吗?哈哈,很抱歉弄糊涂了,我不知道该如何解释它的不同之处。你不想隐藏第二个H1哦。。第一句话很让人困惑。希望删除所有。但不是真的全部删除吗?哈哈,很抱歉弄糊涂了,我不知道如何解释它。在我的实际代码中,有时在
h1
之后不仅有2个div
,而且最多有10个,所以对于所有next()
。你能弄清楚你到底在找什么吗@DanSurfriderWell如果把我所有的代码都发布在这里,那就太过分了,我会尝试在示例代码中加入更多的变体。基本上,我正在隐藏div
内容,因为这会导致孤立的h1,我也想删除它…也不起作用,如果至少有一个隐藏,它会删除h1
,但如果至少有一个可见,我想保留它。所以我把它倒过来一点,现在它工作了!当你把我推向正确的方向时,如果你愿意,把它作为你的答案贴出来!在我的acual代码中,有时在h1
之后不仅有2个div
,而且最多有10个,所以这可能对所有next()
有点过分了。你能澄清一下你到底在找什么@dansurfrider吗?如果把我所有的代码都发布在这里,那就太过分了,我会尝试在示例代码中加入更多的变体。基本上,我正在隐藏div
内容,因为这会导致孤立的h1,我也想删除它…也不起作用,如果至少有一个隐藏,它会删除h1
,但如果至少有一个可见,我想保留它。所以我把它倒过来一点,现在它工作了!当你把我推向正确的方向时,如果你愿意,把它作为你的答案贴出来!这将以某种方式删除每个h1!太多的圈圈不合我的口味了。我找到了我与Michadelli best合作提出的解决方案。谢谢你的努力,虽然这会以某种方式删除每个h1!太多的圈圈不合我的口味了。我找到了我与Michadelli best合作提出的解决方案。谢谢你的努力
$('div:hidden').prev('h1').hide();