jQuery:在当前元素之后立即获取下一个元素

时间:2009-09-11 09:21:50

标签: jquery css-selectors traversal

我需要将焦点设置为当前元素的下一个元素(在其他情况下是立即上一个)。

例如:

<li>item1</li> <- prev element (get this element)
<li>item1</li><- current element
<li>item1</li> <- next element (get this element)
<li>item1</li>

这是我用的

var curr = (event.target).next();
$(curr).trigger('focus');

当我在firebug中检查curr的值时,由于某种原因显示未定义。

3 个答案:

答案 0 :(得分:22)

使用

$(event.target).next() 

获得下一个兄弟姐妹。您还可以将表达式传递给next函数。这将选择与您的选择器匹配的下一个兄弟:

$(event.target).next("p")

您也可以使用nextAll,它的工作方式相同,但会返回以下所有子语句。 See more here。还有prevprevAll,它们是获取前一个元素的类似物。

基本上,你真的很接近,你只需要将event.target包装在jQuery对象中,因为event.target返回实际的元素。

答案 1 :(得分:7)

你在jquery事件处理程序中吗?如果是这样,为什么不使用$(this).next()和/或$(this).prev()

答案 2 :(得分:2)

var curr = (event.target).nextSibling;