单击一个div可隐藏不同的div

时间:2015-03-25 14:25:51

标签: jquery

在jQuery中有很多关于隐藏/显示功能的教程,但无法找到有关我的问题的任何内容。我不喜欢编程,jquery对我来说是第一次。

我想在用户点击"链接1"等等......它隐藏了这个词"隐藏我"下面。目前它部分有效,但它只隐藏了实际链接...而不是"隐藏我"字。我知道它与选择器有关...但不知道将选择器放在哪里。

感谢。

Simple js fiddle

$(document).ready(function(){
//user clicks on link
    $('a').click(function(){
         //hides the word below link but doesn't work
        $(this).hide();
    });


});

我已经尝试了

 $(this).hide("panel");

  $("panel", this).hide();

由于

5 个答案:

答案 0 :(得分:3)

它无法正常工作,因为当你说$(this)时,它只会占用clicked元素的对象和anchor标记:

使用它:

$(this).closest("div").hide();

而不是

$(this).hide();

帮助自己: 尝试:

console.log($(this));

//这将显示$(this)采取的内容:

<强>更新

基于您的html结构,您可以使用以下内容:

$(this).parent().next().hide()

<强>样本

&#13;
&#13;
$(document).ready(function(){
    $('a').click(function(){
		 
         $(this).parent().next().hide();
    });
   
  
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
	<div id="wrap">
		<div id="main">
			
			
			<div class="row">
				<div class="column">
					<p><a href="#" title="Click me!">Link 1</a></p>
				
					<div class="box">
						<p>Hide me</p>
					</div>
				</div>
				
				<div class="column">
					<p><a href="#" title="Click me!">Link 2</a></p>
				
					<div class="box">
						<p>Hide me</p>
					</div>
				</div>
				
				<div class="column">
					<p><a href="#" title="Click me!">Link 3</a></p>
				
					<div class="box">
						<p>Hide me </p>
					</div>
				</div>
			</div>
		</div>
	</div>
&#13;
&#13;
&#13;

答案 1 :(得分:3)

变化:

$(this).hide();

为:

$(this).parent().next('.box').hide();

$(this)隐藏了您点击的内容

答案 2 :(得分:2)

怎么样:

$(this).closest('.column').find(".box").hide();

答案 3 :(得分:1)

请看哪个面板代表什么。 在这

$("panel").hide();

您正试图隐藏所有面板的标签 尝试使用id

$("#panel").hide();

或班级名称

$(".panel").hide();

或者如果这是&#34;这个&#34;的子节点。 读入 https://api.jquery.com/children/

答案 4 :(得分:1)

您可以使用closest功能实现此功能,并使用children类隐藏.boxJsfiddle demo基于您的代码。

$(document).ready(function(){
    $('a').click(function(){
        $(this).closest('.column').children('.box').hide();
    });  
});