jquery 手风琴 header 索引

jquery accordion header index

jquery 手风琴

我想获取 "xaccordion" 中 h3 的索引。 手风琴中只有一个 link 将具有 class "active" (也可以是一个 id,但我将其设为 class)

如何获取索引。现在元素没有找到,索引返回 -1;

HTML:

<div id="xaccordion">
  <h3>title</h3>
  <div>
    <p>
      <a href="#">link</a>
      <a class="active" href="#">link</a>
    </p>
  </div>
  <h3>title</h3>
  <div>
    <p>
      <a href="#">link</a>
      <a href="#">link</a>
    </p>
  </div>
</div>

JS:

var active_header = $("#xaccordion a.active").closest("h3");
var active_header_index = $("#xaccordion").index(active_header);

console.log("index: " + active_header_index);

我稍微改变了你的HTML,所以一切都关闭了:

<div id="xaccordion">
    <h3> test </h3>
    <div>
        <p>
          <a href="#">link</a>
          <a href="#">link</a>
        </p>
    </div>

    <h3> test2 </h3>
    <div>
        <p>
            <a href="#">link</a>
            <a href="#">link</a>
        </p>
    </div>

    <h3> test3 </h3>
    <div>
        <p>
            <a href="#">link</a>
            <a class="active" href="#">link</a>
        </p>
    </div>
</div>

在这种情况下,您实际上不需要 .closest()。您构造 HTML 的方式可以上升两个 .parent() 这将带您到包含链接的 div。您需要从那里寻找 #xaccordion div。这将找到 div 的索引。从那里您可以找到同级 H3,但不需要它,因为这些索引将相同。

这是 JS:

var active_header = $("#xaccordion a.active").parent().parent();
var active_header_index = $("#xaccordion div").index(active_header);

console.log(active_header);
console.log("index: " + active_header_index);

尝试移动 class="active"。这应该会给出您想要的结果。

编辑: 这是 fiddle https://jsfiddle.net/rc8ack29/

试试这个代码..希望它有用...做了一些改变,比如关闭标签等。

    <html>
    <head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
      <script>
          $(document).ready(function(){
          var active_header = $("a.active").parents("h3").index();
        //var active_header_index = $("#xaccordion").index(active_header);

          console.log(active_header);
      });
      </script>
    </head>
    <body>
<div id="xaccordion">
  <h3>
  <div>
    <p>
      <a href="#">link</a>
      <a class="active" href="#">link</a>
    </p>
  </div>
  </h3>
  <div>
    <p>
      <a href="#">link</a>
      <a href="#">link</a>
    </p>
  </div>
</div>
        </body>
</html>