【问题标题】:how to judge an element's previous or next element exist with jquery?jquery如何判断一个元素的上一个或下一个元素存在?
【发布时间】:2011-08-06 20:10:01
【问题描述】:

假设我有一个<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");
                }
            }
        }

目前这可以解决我的问题,但是有没有简单的方法?

谢谢

【问题讨论】:

    标签: jquery element next


    【解决方案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;

        Example

        【讨论】:

          【解决方案4】:

          你需要检查长度属性。

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-03-26
            • 1970-01-01
            • 2016-12-30
            • 1970-01-01
            • 1970-01-01
            • 2014-07-18
            • 2020-08-01
            • 1970-01-01
            相关资源
            最近更新 更多