как определить, существует ли предыдущий или следующий элемент элемента с помощью jquery?

#jquery #element #next

#jquery #элемент #Далее

Вопрос:

предположим, у меня есть <ul> :

 <ul>
    <li></li>
    <li></li>
    <li class="test"></li>
</ul>
  

Как я могу определить, .test есть ли следующий элемент с помощью jquery?
вот так?:

 if ($("li.test").next()) { …… }
  

странно то, что даже я пишу, как указано выше:

 if ($("li.test").next()) {alert("true");}
  

он по-прежнему выдает предупреждение «true», но, как вы видите, рядом с ним нет элемента?почему это произошло?

Или что я могу сделать, это

         for (i = 0; i < $("li").length; i  ) {
            if ($("li").eq(i).hasClass("test")) {
                if (i == $("li").length - 1) {
                    alert("true");
                }
            }
        }
  

в настоящее время это могло бы решить мою проблему, но есть ли простой способ?

Спасибо

Ответ №1:

Выбор jQuery всегда будет приниматься за логическое значение true (как в if инструкции). Это потому, что это не собственный тип Javascript — это объект.

Вам нужно проверить length свойство выделения. Если он пустой, это будет 0 и будет оцениваться как false , поэтому if не пройдет. Если он не пустой, он будет положительным целым числом и, следовательно, будет равен true , поэтому условие будет выполнено.

 if ($("li.test").next().length) { …… }
  

Ответ №2:

 if ($("li.test").next().length > 0) { ... }
  

http://jsfiddle.net/Kfsku/

Ответ №3:

$("li.test").next().length ;

Пример

Ответ №4:

Вам нужно проверить свойство length .

 if ($("li.test").next().length) {
  //has next 
} else {
  //last elem
}
  

Имейте в виду, что jQuery обычно возвращает сам себя, чтобы вы могли создавать цепочки. Получение length свойства этого объекта даст вам информацию