您好我需要一些使用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的第一行工作正常,但第二行似乎不起作用。
提前致谢!
答案 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
如果div
有div
,那么此处不需要if语句。
这是摘录。
Ann
&#13;
$(function(){
$('.team-member-info .team-member-name:contains("Ann")').parent().parent().hide();
});
&#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 )子句。
答案 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();