jquery跳转到下一个元素

时间:2011-07-29 02:06:14

标签: jquery jquery-selectors

我正在尝试使用jquery next函数来单击链接以导航到无序列表中的下一个元素。我所拥有的是下面的内容,但是我得到了一个404说它无法找到[object Object]

$('.next').click(function (event) {
    window.location = $('li').next();
});

<div id="nextButton"><a href="#" class="next" id="next">&gt;</a></div>

2 个答案:

答案 0 :(得分:4)

如果您完全按原样发布了代码,则会出现很多语法错误。修正版本如下:

$('.next').click(function (event) { // missing $/jQuery
    window.location = $('li').next();
}); // missing the close parentheses

此外,由于您正在使用jQuery,您可能需要考虑使用以下内容:

// where selector is the selector for the element you are scrolling to
$(window).scrollTop(selector.position().top); 

修改

如果它是水平的,您只需要相应地调整滚动码。 e.g:

$(window).scrollLeft(selector.position().left); 

编辑#2

这是我认为你想要实现的一个非常基本的例子:

http://jsfiddle.net/FsjkM/

单击HTML部分,它将滚动到下一个列表元素(请注意更改的数字)。

在您的实际应用程序中,您需要跟踪或计算“当前”元素以允许上一个/下一个功能。

最终编辑

http://jsfiddle.net/FsjkM/1/

我已经充实了它,让你知道一个更完整的结构将如何看待。请注意,不存在边界检查 - 如果您在开始时单击“上一步”,或者在结束时单击“下一步”,则会中断。

答案 1 :(得分:0)

您的代码存在一些问题。

  1. $('li')将返回所有'li'元素,所以$('li')。next()将返回一个数组。您需要选择器来指示当前选择。

  2. next()将返回一个元素,它不一定是内部的html。你可能想使用next()。html()我认为这是你的意图。但这并不意味着它会起作用。接下来继续阅读。 : - )

  3. window.location接受url字符串(例如“http://www.google.com”),而不接受HTML链接(例如, <a href="http://www.google.com">Google</a>

  4. 希望有所帮助