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

时间:2011-04-16 09:50:00

标签: jquery element next

假设我有<ul>

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

如何用jquery判断.test是否有下一个元素? 像这样?:

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 个答案:

答案 0 :(得分:37)

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

您需要检查所选内容的length属性。如果它为空,则为0并将评估为false,因此if将无法通过。如果它不为空,则它将是一个正整数,因此将计算为true,因此条件将通过。

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

答案 1 :(得分:7)

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

http://jsfiddle.net/Kfsku/

答案 2 :(得分:2)

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

Example

答案 3 :(得分:1)

您需要检查长度属性。

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

请记住,jQuery通常会自行返回,因此您可以链接。获取该对象的length属性将为您提供信息