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

o2gm4chl  于 2023-06-22  发布在  jQuery
关注(0)|答案(4)|浏览(186)

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

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

uplii1fm

uplii1fm1#

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

http://jsfiddle.net/Kfsku/

7tofc5zh

7tofc5zh2#

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

gywdnpxw

gywdnpxw3#

您需要检查长度属性。

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

请记住,jQuery通常会返回自身,以便您可以链接。获取该对象的length属性将给予以下信息

bjp0bcyl

bjp0bcyl4#

一个jQuery selection的值总是boolean true(和if语句一样)。这是因为它不是原生的JavaScript类型--它是一个对象。
您需要检查所选内容的length属性。如果它为空,这将是0,并将评估为false,因此if将不会通过。如果它不为空,它将是一个正整数,因此将计算为true,因此条件将通过。

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

相关问题