如何使用jquery判断元素的上一个或下一个元素是否存在?

hh5*_*188 18 jquery element next

假设我有一个<ul> :

<ul>
    <li></li>
    <li></li>
    <li class="test"></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我怎样才能判断.testjquery有下一个元素?像这样?:

if ($("li.test").next()) { …… }
Run Code Online (Sandbox Code Playgroud)

奇怪的是,即使我像上面这样写:

if ($("li.test").next()) {alert("true");}
Run Code Online (Sandbox Code Playgroud)

它仍然警告"真实",但如你所见,它旁边没有元素?为什么会这样?

或者我能做的是

        for (i = 0; i < $("li").length; i++) {
            if ($("li").eq(i).hasClass("test")) {
                if (i == $("li").length - 1) {
                    alert("true");
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

目前这可以解决我的问题,但有一个简单的方法吗?

谢谢

lon*_*day 40

jQuery选择将始终评估为布尔值true(如在if语句中).这是因为它不是本机Javascript类型 - 它是一个对象.

您需要检查length选择的属性.如果它是空的,那么它将被0评估为false,所以if不会通过.如果它不为空,则它将是一个正整数,因此将计算为true,因此条件将通过.

if ($("li.test").next().length) { …… }
Run Code Online (Sandbox Code Playgroud)