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

发布于 2024-11-01 08:35:35 字数 758 浏览 0 评论 0原文

假设我有一个

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

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

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");
                }
            }
        }

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

谢谢

suppose I have an <ul>
:

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

How can I judge the .test have its next element with jquery ?
like this?:

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

the strange thing is that ,even I write like above:

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

it still alert "true",but as you see,there is no element next to it ?why this happened?

Or what I can do is

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

presently this could solve my problem,but is there a easy way?

thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

万劫不复 2024-11-08 08:35:35

jQuery 选择将始终计算为布尔值 true(如在 if 语句中)。这是因为它不是原生 Javascript 类型——它是一个对象。

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

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

A jQuery selection will always evaluate to boolean true (as in an if statement). This is because it is not a native Javascript type -- it is an object.

You need to check the length property of the selection. If it is empty, this will be 0 and will evaluate to false, so the if will not pass. If it is not empty, it will be a positive integer and will therefore evaluate to true, so the conditional will pass.

if ($("li.test").next().length) { …… }
故人爱我别走 2024-11-08 08:35:35
if ($("li.test").next().length > 0) { ... }

http://jsfiddle.net/Kfsku/

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

http://jsfiddle.net/Kfsku/

心奴独伤 2024-11-08 08:35:35

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

示例

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

Example

玩物 2024-11-08 08:35:35

您需要检查长度属性。

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

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

You need to check the length property.

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

Keep in mind that jQuery usually returns itself so you can chain. Getting the length property of that object will give you the information

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文