使用prev()查找项目数量?

时间:2017-01-16 15:56:28

标签: javascript jquery

你喜欢这个

<li>1</li>
<li>2</li>
<li>3</li>
<li class="seperator">...</li>
<li>4</li>
<li>5</li>
<li>6</li>

如何计算顶部和底部的项目数?

4 个答案:

答案 0 :(得分:3)

假设他们都是单身父母,有几种方法。你可以使用prevAll作为之前的长度:

var previousCount = $(".seperator").prevAll().length;

对于之后的那些,它是nextAll

var nextCount = $(".seperator").nextAll().length;

示例 - 请注意我稍微更改了您的HTML,以便我们双方都没有相同的数字,因此我们知道它正在运行:

console.log("Before:", $(".seperator").prevAll().length);
console.log("After:", $(".seperator").nextAll().length);
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li class="seperator">...</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li><!-- I added this one -->
</ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

旁注:正确的拼写是“分隔符”(一个'e',两个'a'),而不是“分隔符”(两个'e',一个'a'),但我在上面保留了你的拼写。

答案 1 :(得分:0)

从分隔符开始,然后使用prevAll()nextAll()获取集合,然后使用它们的长度

var topCount = $('.seperator').prevAll().length

var bottomCount = $('.seperator').nextAll().length

答案 2 :(得分:0)

您可以使用prevAll()获取匹配元素集合中元素的前一个兄弟节点,并使用nextAll()获取匹配元素集合中元素的以下兄弟节点

阅读:http://api.jquery.com/prevall/

http://api.jquery.com/nextall/

&#13;
&#13;
Unable to find application to perform this action
&#13;
console.log($(".seperator").prevAll("li").length);
console.log($(".seperator").nextAll("li").length);
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您可以使用其他答案中已提及的prevAllnextAll,也可以使用index()并根据{{1}的长度获取值}:

&#13;
&#13;
ul
&#13;
prev = $('.seperator').index();
next = $('ul li').length - $('.seperator').index() - 1;
console.log(prev);
console.log(next);
&#13;
&#13;
&#13;