我需要将焦点设置为当前元素的下一个元素(在其他情况下是立即上一个)。
例如:
<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
的值时,由于某种原因显示未定义。
答案 0 :(得分:22)
使用
$(event.target).next()
获得下一个兄弟姐妹。您还可以将表达式传递给next
函数。这将选择与您的选择器匹配的下一个兄弟:
$(event.target).next("p")
您也可以使用nextAll
,它的工作方式相同,但会返回以下所有子语句。 See more here。还有prev
和prevAll
,它们是获取前一个元素的类似物。
基本上,你真的很接近,你只需要将event.target
包装在jQuery对象中,因为event.target
返回实际的元素。
答案 1 :(得分:7)
你在jquery事件处理程序中吗?如果是这样,为什么不使用$(this).next()
和/或$(this).prev()
?
答案 2 :(得分:2)
var curr = (event.target).nextSibling;