Javascript 如何以类名作为下一个元素的目标?
Javascript 如何以类名作为下一个元素的目标?,javascript,jquery,html,accordion,slidetoggle,Javascript,Jquery,Html,Accordion,Slidetoggle,我正在做一个简单的jquery手风琴效果,如下所示 JQUERY $(function ($) { $('.Accordian').find('.Btn').click(function () { $(this).next('.Content').slideToggle('fast'); $('.Content').not($(this).next()).slideUp('fast'); }); }); HTML <div class="Accordian">
我正在做一个简单的jquery手风琴效果,如下所示 JQUERY
$(function ($) {
$('.Accordian').find('.Btn').click(function () {
$(this).next('.Content').slideToggle('fast');
$('.Content').not($(this).next()).slideUp('fast');
});
});
HTML
<div class="Accordian">
<div class="Btn"></div>
<div class="Content"></div>
</div>
但是,如果内容放在.Btn
和.content
之间,那么它就会崩溃
问题
.nextAll()
和.first()
来完成任务,实际上为了安全起见,我们使用了.first()
$('.Accordian').find('.Btn').click(function () {
var targetElem = $(this).nextAll('.Content').first();
targetElem.slideToggle('fast');
$('.Content').not(targetElem).slideUp('fast');
});
尝试使用.nextAll()
和.first()
来完成任务,实际上为了安全起见,我们使用了.first()
$('.Accordian').find('.Btn').click(function () {
var targetElem = $(this).nextAll('.Content').first();
targetElem.slideToggle('fast');
$('.Content').not(targetElem).slideUp('fast');
});
试一试
试一试
“如果内容放在.Btn和.content之间”-我没有得到这个部分。为什么要将内容放在
.content
之外?你能澄清一下吗?我不是用传统意义上的手风琴。有时我想一直显示一些从未隐藏但需要在按钮下方的内容。我在检查小提琴之前添加了注释。“元素”或“html内容”比“内容”更容易理解,因为您已经有了这样一个div.@obsidon,如果您试图只针对.content并使“中断文本”可见。。那你为什么要把目标放在第一位呢?如果你要投反对票,至少要有礼貌地解释一下原因!“如果内容放在.Btn和.content之间”-我没有得到这个部分。为什么要将内容放在.content
之外?你能澄清一下吗?我不是用传统意义上的手风琴。有时我想一直显示一些从未隐藏但需要在按钮下方的内容。我在检查小提琴之前添加了注释。“元素”或“html内容”比“内容”更容易理解,因为您已经有了这样一个div.@obsidon,如果您试图只针对.content并使“中断文本”可见。。那你为什么要把目标放在第一位呢?如果你要投反对票,至少要有礼貌地解释一下原因!