У вас есть дом, как этотНайти номер с помощью prev()?
<li>1</li>
<li>2</li>
<li>3</li>
<li class="seperator">...</li>
<li>4</li>
<li>5</li>
<li>6</li>
Как рассчитать количество элементов в верхней и нижней части?
У вас есть дом, как этотНайти номер с помощью prev()?
<li>1</li>
<li>2</li>
<li>3</li>
<li class="seperator">...</li>
<li>4</li>
<li>5</li>
<li>6</li>
Как рассчитать количество элементов в верхней и нижней части?
Предполагая, что все они находятся в одном родителе, существует несколько способов. Вы можете использовать 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>
Side Примечание: Правильное написание «разделитель» (один «е», два «а-х), а не„Seperator“(два» Э, один „а“), но я сохранил ваши правописание в приведенном выше.
Вы можете использовать возобладать(), чтобы получить предыдущих братьев элемента в наборе соответствующих элементов и nextAll() чтобы получить последующие брат элемента в наборе соответствующих элементов
Read: http://api.jquery.com/prevall/
http://api.jquery.com/nextall/ и
console.log($(".seperator").prevAll("li").length);
console.log($(".seperator").nextAll("li").length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li>1</li>
<li>2</li>
<li>3</li>
<li class="seperator">...</li>
<li>4</li>
<li>5</li>
<li>6</li>
Вы можете использовать prevAll
и nextAll
, как уже упоминалось в других ответах, или вы можете использовать index()
и получить значение на основе длины ul
:
prev = $('.seperator').index();
next = $('ul li').length - $('.seperator').index() - 1;
console.log(prev);
console.log(next);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<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>
</ul>
Если вы используете jQuery, а также "top and bot tom ", вы имеете в виду комбинацию сверху и снизу, вы можете получить все элементы и исключить' .seperator': '$ (" li "). not (". seperator "). length;' или '$ (" li: not (. .seperator) ") длина;'. Если вы имеете в виду отдельно, обратитесь к ответам ниже. – Santi
Если вам все равно, это «разделитель». :) – sweaver2112