Причина, по которой это не сработает, заключается в том, что :last
соответствует только одному элементу. Из документации jQuery:
Соответствует последнему выбранному элементу.
Итак, ваш код получает набор всех элементов <li>
в <ul>
, а затем из этого набора принимает последнее значение. Пример:
<ul>
<li>1</li>
<li>2</li>
</ul>
<ul>
<li>3</li>
<li>4</li>
</ul>
<ul>
<li>5</li>
<li>6</li>
</ul>
Ваш код вернет элемент <li>6</li>
. (Внутренне он собирал бы <li>1</li>
до <li>6</li>
, а затем отбрасывал последний и возвращал его).
То, что вы ищете, - это то, что сказали другие ответы: :last-child
.