jquery nextAll() 函数,检查是不是有next

Posted

技术标签:

【中文标题】jquery nextAll() 函数,检查是不是有next【英文标题】:jquery nextAll() function, check if there is a nextjquery nextAll() 函数,检查是否有next 【发布时间】:2012-06-26 19:12:10 【问题描述】:

我如何测试是否有下一个,因为这不想工作

出于某种原因,它总是计算 3 个元素?

$("body "+content).on("keypress","form.fcheckoutform :input.aantal",function(e) 
        if (e.keyCode === 9)  

            var nextItem = $(this).nextAll();

            if (!nextItem.length)  
                $(content+ '.aantal:eq(0)').focus();
                return false;
            
            $(this).nextAll().focus();
        
    );

编辑: 解决了

$("body "+content).on("keypress","form.fcheckoutform :input.aantal",function(e) 
        e.preventDefault();
        if (e.keyCode === 9)  
            var nextItem = $(this).parents('.item-checkout').next().children('form').children('div.fr').find('.aantal');
            if (!nextItem.length)  
                $(content+ ' .aantal:first').focus();
            else
                nextItem.focus();
            
        
    );

谢谢,理查德

【问题讨论】:

.next() 应该已经足够了,它会根据被选元素后面是否有元素返回0或1个元素。 next 对我不起作用,它只是选择了下一个元素,但不是同一类型 在 .nextAll() 中添加选择器,只选择与当前类型匹配的元素。 它可以工作,但我无法检查是否有下一个元素,那就是它中断的地方,它不断返回数字 3 并且焦点进入浏览器 发布您的解决方案作为答案并接受它。将.parents() 替换为.closest() 【参考方案1】:

试试这个:

$("body "+content).on("keypress","form.fcheckoutform :input.aantal",function(e) 
    if (e.keyCode === 9)  

        var nextItem = $(this).nextUntil(':input.aantal').next();

        if (!nextItem.length)  
            $(content+ '.aantal:eq(0)').focus();
            return false;
        
        $(this).nextUntil(':input.aantal').next().focus();
    
);

【讨论】:

输入是否以任何方式嵌套? (例如内部 div 或标签) 是的,在 div 里面,你可以查看 www.woonbel.nl - 点击左上角 .next 不会为您上下遍历 dom,它实际上只会到达当前元素的下一个兄弟。您将需要 .parent().next().children() 等没有标记,我无法提供有效的代码。 是的,我现在看到了 3 的来源,它们是包含 div 的下三个项目。我还可以使用 nextAll 还是必须以某种方式查找元素的索引?

以上是关于jquery nextAll() 函数,检查是不是有next的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Keydown Next、NextAll、父问题

jquery nextAll() 与 prevAll()

jQuery的next()和nextAll()例子二

构建jQuery框架封装 nextAll 和 prevAll 方法!!!!(超级篇!)

JQuery层次选择器

Javascript/Jquery-如何检查函数是不是返回任何值?