使用jQuery切换下一个元素
Toggle next element with jQuery
我对this
元素有问题(我知道this
是如何工作的)。
我有很多html结构。当我点击a按钮时,必须显示类为extra-options
的div。但是,由于我有很多相同的html结构在整个过程中重复,当我单击按钮时,所有其他div选项也会显示出来。
我该怎么修?
这是JavaScript:
var buttonSubmit = $(".extra-options .details a.button");
buttonSubmit.click(function (e) {
e.preventDefault();
var extraOptions = $(".extra-options-tickets");
if($(".extra-options-tickets").is(":visible")) {
extraOptions.hide();
} else {
extraOptions.fadeIn(450);
};
});
这是html:
<p class="actions">
<a href="#" class="button" title="Toevoegen"><span>Toevoegen</span></a>
</p>
<div class="extra-options-tickets" style="display: none; ">text</div>
感谢您提前提供的帮助。
更改代码,以便在点击链接后直接获得额外的选项div,如下所示:
buttonSubmit.click(function (e) {
e.preventDefault();
// Get the extra options directly after the clicked link
var extraOptions = $(this).closest('p.actions').next('div.extra-options-tickets');
if(extraOptions.is(":visible")) {
extraOptions.hide();
} else {
extraOptions.fadeIn(450);
};
});
描述
您应该使用jQuery.parent()
和jQuery.next()
来完成此操作。看看这个例子和这个jSFiddle演示。
样品
Html
<p class="actions">
<a href="#" class="button" title="Toevoegen"><span>Toevoegen</span></a>
</p>
<div class="extra-options-tickets" style="display: none; ">
text
</div>
<p class="actions">
<a href="#" class="button" title="Toevoegen"><span>Toevoegen</span></a>
</p>
<div class="extra-options-tickets" style="display: none; ">
text
</div>
jQuery
$(".button").click(function () {
var div = $(this).parent().next();
if(div.is(":visible")) {
div.hide();
} else {
div.fadeIn(450);
};
});
更多信息
- jSFiddle演示
- jQuery.next()
- jQuery.pparent()
请参阅我为您制作的示例:http://jsfiddle.net/manuel/PmNwh/
我使用jquery next()
函数来获得第一个.extra-options-tickets
this
元素表示在您的案例中调用动作开关的元素,它就是<a>
元素。
并且它缝合了你只想显示的下一个<div class="extra-options-tickets">
,而不是所有的,所以你需要这样想:
在这段代码中,如果触发click
的是<a>
(您的选择器),我该如何到达我想要显示的<div>
?
<p class="actions">
<a href="#" class="button" title="Toevoegen"><span>Toevoegen</span></a>
</p>
<div class="extra-options-tickets" style="display: none; ">text</div>
从 将其转换为代码: 你总是可以使其更通用,这样你就可以安全地在两者之间添加更多的元素,例如: 与其调用<a>
,您可以导航到上一个元素,它是<p class="actions">
,下一个var extraOptions = $(this) // my <a> element
.prev() // previous element (<p class="actions">)
.next(); // next element from <p> is <div class="extra-options-tickets">
.prev()
(上一个元素),不如找到类为actions
的最近元素,然后从那里找到类为extra-options-tickets
的DOM下一个元素,转换为:var extraOptions = $(this).closest(".actions").next(".extra-options-tickets");
- 滚动到容器中的下一个元素-几乎到了
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- jQuery转盘下一个元素没有滑入
- 获取锚点的下一个元素
- j查询 如何选择当前元素之后的下一个元素
- 如何在 JavaScript 中获取下一个元素和更新
- jQuery网站的键盘快捷键,焦点使用左键和右键转到上一个或下一个元素
- 如果上一个元素为空,则隐藏下一个元素
- 使用表时,Jquery Next()未正确突出显示下一个元素
- 如何将所有下一个元素包装到
- 获取活动元素之后的下一个元素
- jQuery-在每个复选框中获取下一个元素
- 找不到下一个元素
- 如何获取下一个元素's值-jquery
- 如何选择 $(this) 之后的下一个元素
- 专注于下一个元素
- 导入 serval WebComponent 时,上一个自定义元素被下一个元素覆盖
- 将一个类添加到所有下一个元素,直到该类的子元素为止
- 如何在javascript中获取数组的下一个元素
- 使用 jquery 将类添加到下一个元素