使用jQuery问题隐藏父div

时间:2016-08-12 17:26:00

标签: jquery html

您好我需要一些使用jQuery隐藏父div的帮助。

这是我的HTML:

id

这是我到目前为止的jQuery:

<div class="team-member">
    <div class="team-member-info">
        <h3 class="team-member-name">Ann</h3>
    </div>
</div>

基本上我想要实现的是,如果“.team-member-name”包含单词“Ann”,则删除整个div,即“.team-member”

jQuery的第一行工作正常,但第二行似乎不起作用。

提前致谢!

5 个答案:

答案 0 :(得分:3)

你甚至不需要if-block。只需选择并隐藏:

$('.team-member-info .team-member-name:contains("Ann")').closest('.team-member').hide()

如果jQuery没有找到任何包含“Ann”的.team-member-name,它就不会隐藏任何东西。

另请注意,因为你想要走两级,你不能使用$.fn.parent(只有一级祖先)。相反,您应该使用$.fn.parents$.fn.closest

答案 1 :(得分:1)

尝试删除 if 语句,因为:contains()只会找到包含div的{​​{1}}并且隐藏父级Ann如果divdiv,那么此处不需要if语句。

这是摘录

&#13;
&#13;
Ann
&#13;
$(function(){
   $('.team-member-info .team-member-name:contains("Ann")').parent().parent().hide();
});
&#13;
&#13;
&#13;

答案 2 :(得分:0)

不要使用复杂的jQuery选择器(由于多种原因),请执行以下操作:

var $temp_team_member = $('.team-member-info .team-member-name');
if(/Ann/.test( $temp_team_member.text() ) ){
    $temp_team_member.parent().hide();
}

在这里,您要创建变量并捕捉.team-member-info .team-member-name。如果它包含'Ann'作为文本,则会执行您的操作。

编辑: 代码示例编辑为套件“包含Ann”(不是是Ann )子句。

Working pen.

答案 3 :(得分:0)

$(this)指的是什么?你的if语句是在一个函数内还是它自己的?因为在此代码中,$(this)不是指 .team-member-info

答案 4 :(得分:0)

.closest()已弃用,而.parent()仅遍历一个级别。我建议做以下事情:

$('.team-member-info .team-member-name:contains("Ann")').parents('div.team-member').hide();