Jquery 查找具有类的第一个父级的索引

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 (

我有一个jqueryaccordion,其中每个面板都由一个
元素表示,该元素的类为
.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”)
有什么错?