jquery包含未找到上一个类
但这只会使id1不可见 更新:jquery包含未找到上一个类,jquery,contains,Jquery,Contains,但这只会使id1不可见 更新: 谢谢,所有的JSFIDLE都工作了,但是它不能与我原来的html结构一起工作,我现在在上面更新了它。同时隐藏dis1和dis3也很好。这将隐藏id1和id3 $(".orderDiv") .not(':contains("KEYWORD")') .prevAll('.mainDiv:first') .css('display','none'); 您可以使用以下功能: $(".orderDiv").not(':contains("K
谢谢,所有的JSFIDLE都工作了,但是它不能与我原来的html结构一起工作,我现在在上面更新了它。同时隐藏dis1和dis3也很好。这将隐藏id1和id3
$(".orderDiv")
.not(':contains("KEYWORD")')
.prevAll('.mainDiv:first')
.css('display','none');
您可以使用以下功能:
$(".orderDiv").not(':contains("KEYWORD")').prevAll('.mainDiv').not(':eq(1)').each(function()
{
$(this).css('display','none')
});
如果您只想显示匹配的主div和订单div,还可以将以下内容链接到底:
$('.mainDiv').filter(function() {
return !$(this).next('.orderDiv:contains(KEYWORD)').length;
}).hide();
根据您的编辑进行更新
只有您要隐藏的id1和id3已更新我的答案,这应该适用于您的新结构是否知道为什么$'.orderDiv:containsKEYWORD.show.prev.mainDiv.show;假设找到的关键字的显示之前设置为无,则无法显示该关键字的.mainDiv?因为mainDiv不是orderDiv的上一个,所以必须执行$'.orderDiv:containsKEYWORD'.show.prev'table.prev'.dispatch'.prev.mainDiv.show;哦,好的,谢谢,但是如果我的结构被任何html标记改变,它就不再正确了。是否有方法从关键字匹配中查找最后一个类.mainDiv搜索?在这种情况下,我会将每一行包装成一个div,然后您可以执行$'.orderDiv:containsKEYWORD.show.parent.children.mainDiv'谢谢,但它也会显示错误的.mainDiv,而且无法更改div结构-是一个封闭系统
$('.mainDiv').filter(function() {
return !$(this).next('.orderDiv:contains(KEYWORD)').length;
}).hide();
.next('.orderDiv').hide();
var divs = $('.orderDiv').not(':contains(KEYWORD)')
divs.each(function() {
var div = $(this);
div.hide()
.prev('table').hide()
.prev('.dispatch').hide()
.prev('.mainDiv').hide();
});