javascript - jquery:尝试理解 next() 函数

标签 javascript jquery dom

我在以下 html 上使用了 jquery next() 方法:

<div id="NavBar">

    <div class="dropDownList">
        <ul>
            <li><a href="#"><span>Home</span></a></li>
            <li><a href="#"><span>Products</span></a>
                <ul>
                    <li><a href="#"><span>test</span></a>
                    <li><a href="#"><span>test</span></a>
                </ul>
            </li>
            <li><a href="#"><span>Company</span></a>
            </li>
            <li><a href="#"><span>Contact</span></a></li>
        </ul>
    </div>

    <div class="dropDownList">
        <ul>
            <li><a href="#"><span>Home</span></a></li>
            <li><a href="#"><span>Products</span></a>
            </li>
            <li><a href="#"><span>Company</span></a>
            </li>
            <li><a href="#"><span>Contact</span></a></li>
        </ul>
    </div>
</div>

我将以下单击处理程序添加到列表中的 anchor ,并将 current 和 next() 元素写入控制台,如下所示:

$('.dropDownList > ul > li > a').click(function() {

    console.dir($(this));

    var checkElement = $(this).next();

    console.dir(checkElement);
    }

当我单击第一个 ul 的“产品”列表项时,我在控制台中看到: enter image description here

所以我可以看到第一个元素是 anchor ,下一个元素是 ul - 这对我来说很有意义。现在,当我单击第二个 ul 中的“产品”列表项时,我感到困惑。我像以前一样返回两个对象,但这次它们都是 anchor 。我认为第一个 anchor 元素将是“产品”,第二个 anchor 元素将是“公司”,因为这是列表中的下一个元素,甚至可能是 <li>包含下一个 anchor 的元素。相反,当我深入查看控制台中的对象时,它们似乎是相同的元素。两者的 text 和 textContent 字段相同: enter image description here

这是为什么?

最佳答案

在第二个示例中,列表中的下一个元素不是 a anchor 的同级元素;它是其父 li 的同级。

Products anchor 没有 .next() 元素,您应该在控制台中看到 $(this).next() 是一个空的 jQuery 对象,.length 为零。 http://jsfiddle.net/mblase75/6LFPG/

关于javascript - jquery:尝试理解 next() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21413857/

相关文章:

javascript - 使用 Java Servlet 的 SweetAlert

javascript - 如何在 javascript 中嵌入 jquery 库?

javascript - 如何在计时器中使用秒

javascript - 如何在不使用模数的情况下在javascript中获取余数

javascript - FB.UIServer._loadedNodes[a.frame] 未定义

javascript - AngularJS ng-click 被 {{$index}} 破坏

javascript - 如何使用 DOM 保持 html 表格尺寸相同

jquery - 在 Angular JS 中将 html 内容附加到 iframe

javascript - 我怎样才能重做这段代码来创建表,但使用循环?

javascript - PHP - 向所有客户端发送异步广播消息