Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery按类隐藏同一父级中的元素_Javascript_Jquery_Dom_Onclick - Fatal编程技术网

Javascript 使用jquery按类隐藏同一父级中的元素

Javascript 使用jquery按类隐藏同一父级中的元素,javascript,jquery,dom,onclick,Javascript,Jquery,Dom,Onclick,以下面的html为例: <div class="box"> <a href="javascript:;" onclick="toggle_content(1)">Toggle</a> <h2>Some Title</h2> <div class="box_content box_content_1"></div> <div class="box_content box_content_2"></

以下面的html为例:

<div class="box">
<a href="javascript:;" onclick="toggle_content(1)">Toggle</a>
<h2>Some Title</h2>
<div class="box_content box_content_1"></div>
<div class="box_content box_content_2"></div>
</div>

<div class="box">
<a href="javascript:;" onclick="toggle_content(1)">Toggle</a>
<h2>Some Title</h2>
<div class="box_content box_content_1"></div>
<div class="box_content box_content_2"></div>
</div>

<script>
function toggle_content(key){
   $('.box_content_'+key,$(this).parent()).toggle();
}
</script>

一些头衔
一些头衔
功能切换_内容(键){
$('.box\u content\u'+键,$(this.parent()).toggle();
}
基本上,单击toggle链接时,我希望toggle元素位于具有匹配类名的同一父级中。上面的代码似乎没有任何作用。

$(this).parent()
没有提及您认为它的作用。在这种情况下,
这个
是什么?窗户

以下工作将起作用:

$('.box_content_'+key,".box").toggle();
不过,我会这样做:

HTML

$(this).parent()
并不是指您认为它做了什么。在这种情况下,
这个
是什么?窗户

以下工作将起作用:

$('.box_content_'+key,".box").toggle();
不过,我会这样做:

HTML


在使用jQuery时,可以使用jQuery
单击
同级()方法,请尝试以下操作:

获取匹配元素集中每个元素的同级,可选地通过选择器进行筛选


您可以使用
data=*
属性来选择锚点的目标元素:

<div class="box">
   <a href="#" data-toggle="1">Toggle</a>
   <h2>Some Title</h2>
   <div class="box_content box_content_1"></div>
   <div class="box_content box_content_2"></div>
</div>

<div class="box">
   <a href="#" data-toggle="2">Toggle</a>
   <h2>Some Title</h2>
   <div class="box_content box_content_1"></div>
   <div class="box_content box_content_2"></div>
</div>

在使用jQuery时,您可以使用jQuery
单击
同级()
方法,请尝试以下操作:

获取匹配元素集中每个元素的同级,可选地通过选择器进行筛选


您可以使用
data=*
属性来选择锚点的目标元素:

<div class="box">
   <a href="#" data-toggle="1">Toggle</a>
   <h2>Some Title</h2>
   <div class="box_content box_content_1"></div>
   <div class="box_content box_content_2"></div>
</div>

<div class="box">
   <a href="#" data-toggle="2">Toggle</a>
   <h2>Some Title</h2>
   <div class="box_content box_content_1"></div>
   <div class="box_content box_content_2"></div>
</div>
试试这个

HTML

<div class="box">
<a href="javascript:;" onclick="toggle_content(1,$(this))">Toggle</a>
<h2>Some Title</h2>
<div class="box_content box_content_1">a</div>
<div class="box_content box_content_2">b</div>
</div>
<div class="box">
<a href="javascript:;" onclick="toggle_content(2,$(this))">Toggle</a>
<h2>Some Title</h2>
<div class="box_content box_content_1">a</div>
<div class="box_content box_content_2">b</div>
</div>​

试试这个

HTML

<div class="box">
<a href="javascript:;" onclick="toggle_content(1,$(this))">Toggle</a>
<h2>Some Title</h2>
<div class="box_content box_content_1">a</div>
<div class="box_content box_content_2">b</div>
</div>
<div class="box">
<a href="javascript:;" onclick="toggle_content(2,$(this))">Toggle</a>
<h2>Some Title</h2>
<div class="box_content box_content_1">a</div>
<div class="box_content box_content_2">b</div>
</div>​

我有答案给你

HTML:

<div class="box">
    <a href="javascript:toggle_content(1);">Toggle</a>
    <h2>Some Title</h2>
    <div class="box_content box_content_1">1</div>
    <div class="box_content box_content_2">2</div>
</div>
function toggle_content(key) {
    $('.box_content_' + key).toggle();

}​

我有答案给你

HTML:

<div class="box">
    <a href="javascript:toggle_content(1);">Toggle</a>
    <h2>Some Title</h2>
    <div class="box_content box_content_1">1</div>
    <div class="box_content box_content_2">2</div>
</div>
function toggle_content(key) {
    $('.box_content_' + key).toggle();

}​

您可以在
toggle\u content
中使用


您可以在
切换内容
中设置
的上下文,方法是使用



@yckart我已经修改了我的问题,以便更清楚地了解情况。好的,谢谢!我不知道你到底是什么意思…顺便说一句,不要在html标记中硬编码脚本。尝试将脚本放在一个单独的文件中,并通过使用
click()
on()
bind()
degate()
来附加事件,尽管自jQuery 1.7以来,
on()
是首选选项。这将使您的html保持整洁。@yckart我已修改了我的问题,使其更清楚地了解情况。好的,谢谢!我不知道你到底是什么意思…顺便说一句,不要在html标记中硬编码脚本。尝试将脚本放在一个单独的文件中,并通过使用
click()
on()
bind()
degate()
来附加事件,尽管自jQuery 1.7以来,
on()
是首选选项。这将使您的html保持整洁。这也将切换同一父级之外的任何其他元素,其类为
.box\u content\u x
。OP仅请求同一父级内的元素。这也将切换同一父级外类为
.box\u content\u x
的任何其他元素。OP只请求同一父级中的元素。抱歉,这不起作用,请参阅我修改的示例。有可能存在多个.box和.box\u内容\u 1。我还以为这是被点击的项目呢。@David我要做的第一件事就是告诉你为什么你尝试的东西不起作用。我的回答的后半部分是你想要的。对不起,这行不通,请看我修改过的示例。有可能存在多个.box和.box\u内容\u 1。我还以为这是被点击的项目呢。@David我要做的第一件事就是告诉你为什么你尝试的东西不起作用。我的回答的后半部分是你想要的。这似乎不能解释OP问题的动态要素。他在传递一个你硬编码的参数。@j08691这很有趣,你总是有理由对我的答案投反对票:)我很少对答案投反对票,句号。你原来的回答不完整。我已经删除了否决票。@j08691是的,这是合理的。这似乎不能解释OP问题的动态因素。他在传递一个你硬编码的参数。@j08691这很有趣,你总是有理由对我的答案投反对票:)我很少对答案投反对票,句号。你原来的回答不完整。我已经取消了否决票。@j08691是的,这是合理的。
onclick="toggle_content.call(this, 1)"