Как определить, существует ли предыдущий или следующий элемент элемента с помощью jquery?
Предположим, у меня есть <ul>
:
<ul>
<li></li>
<li></li>
<li class="test"></li>
</ul>
Как я могу судить .test
есть следующий элемент с jquery? как это?:
if ($("li.test").next()) { …… }
странно то, что даже я пишу как выше:
if ($("li.test").next()) {alert("true");}
это все еще предупреждает "правда", но, как вы видите, рядом нет элемента? Почему это произошло?
Или то, что я могу сделать, это
for (i = 0; i < $("li").length; i++) {
if ($("li").eq(i).hasClass("test")) {
if (i == $("li").length - 1) {
alert("true");
}
}
}
в настоящее время это может решить мою проблему, но есть ли простой способ?
благодарю вас
4 ответа
Выбор jQuery всегда будет оцениваться как логический true
(как в if
заявление). Это потому, что это не нативный тип Javascript - это объект.
Вам нужно проверить length
свойство выбора. Если он пуст, это будет 0
и оценит false
, Итак if
не пройдет. Если оно не пустое, оно будет положительным целым числом и поэтому будет оцениваться как true
так условно пройдет.
if ($("li.test").next().length) { …… }
if ($("li.test").next().length > 0) { ... }
Вам необходимо проверить свойство длины.
if ($("li.test").next().length) {
//has next
} else {
//last elem
}
Имейте в виду, что jQuery обычно возвращает себя, чтобы вы могли связать. Получение length
свойство этого объекта даст вам информацию