如何根据子元素名称隐藏父级div?

3
我有一个包含多个div的页面。主要的div包含3个子div。我放了一个搜索框,希望根据我输入的内容显示主要的div并隐藏其他的div。
我在网上找到了方法,目前我做到了这一点:https://jsfiddle.net/qaho8hjt/6/
$('.my-textbox').keyup(function() {
    var value = $(this).val();
    var exp = new RegExp('^' + value, 'i');        

    $('.change_req .orizontala').each(function() {
        var isMatch = exp.test($('.projectName', this).text());
        $(this).toggle(isMatch);
    });
});

问题是我不知道如何隐藏父级div。我只能隐藏我搜索到的div。
谢谢。
编辑:感谢大家的回复。

请您发布您的HTML代码。 - Bhushan Kawadkar
3个回答

4
代码基本没问题,只是你隐藏的div应该隐藏它的直接父级而不是内容所在的div。这是演示
替换:
$(this).toggle(isMatch);

使用

$(this).parent().toggle(isMatch);

3
你可以使用closest()来获取最近的包含div。尝试如下代码:
$(this).closest('.change_req').toggle(isMatch);

更新的代码片段


1
尝试像这样:

尝试像这样:

$(this).parent().toggle(isMatch);

查看您编辑后的代码在这里

1
只是作为参考,$(this).parent() 已经返回了一个jQuery对象,你不需要将它放在另一个jQuery对象中。 - Rory McCrossan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接