Jquery 查找具有类的第一个父级的索引
我有一个jqueryaccordion,其中每个面板都由一个Jquery 查找具有类的第一个父级的索引,jquery,jquery-ui,jquery-ui-accordion,Jquery,Jquery Ui,Jquery Ui Accordion,我有一个jqueryaccordion,其中每个面板都由一个元素表示,该元素的类为.ui Accordion content。每个面板内部都有一个窗体。在每个表单的提交事件中,我想打开下一个面板 我想从表单向上遍历DOM树,找到类为.ui accordion content的第一个div,并在页面上返回其索引,这样我就知道哪个表单“已提交”,下一步打开哪个面板 下面是我写的函数: $("form").each(function () { $(this).submit(function (
元素表示,该元素的类为.ui Accordion content
。每个面板内部都有一个窗体。在每个表单的提交事件中,我想打开下一个面板
我想从表单向上遍历DOM树,找到类为.ui accordion content
的第一个div
,并在页面上返回其索引,这样我就知道哪个表单“已提交”,下一步打开哪个面板
下面是我写的函数:
$("form").each(function () {
$(this).submit(function (e) {
e.preventDefault(); // this will prevent from submitting the form.
$("#accordion").accordion({ active: $(this).closest(".ui-accordion-content").index() });
return false;
});
});
它不会返回正确的索引。怎么了
编辑:以下是HTML:
<div id="Accordion">
<h3 class="ui-accordion-header"></h3>
<div class="ui-accordion-content FormOne">
<form>
</form>
</div>
<h3 class="ui-accordion-header"></h3>
<div class="ui-accordion-content FormTwo">
<form>
</form>
</div>
</div>
您可以使用parents并查找第一个.ui手风琴内容
$("form").each(function () {
var self = $(this);
self.submit(function (e) {
var _index = self.parents('.ui-accordion-content:first').index();
e.preventDefault(); // this will prevent from submitting the form.
$("#accordion").accordion({ active: _index });
return false;
});
});
您可以使用选择器向上遍历树并找到匹配的父级
$(this).parents(“.ui accordion content”).index()
您只需要过滤掉有关.ui accordion content
元素的选择。因此,传递jQuery方法的选择器param并添加1以获得下一个:
active:$(this).最近的(.ui accordion content”).index(.ui accordion content)+1
页面上的索引是什么意思?您应该提供相关的HTML。您可以尝试:active:$(this).最近的(.ui accordion content”).index(.ui accordion content)+1
@A.沃尔夫,这很有效!如果你的评论是答案,我会把它标记为答案。为什么这样做?使用最接近(“.ui accordion content”)
有什么错?