Javascript (jQuery):next() 给我“li.next()”代替“li”
令人困惑的标题,是吧?我尽力解释它。
我的意思是,如果我有一个像这样的菜单:
<ul>
<li> Home </li>
<li class="current"> Portfolio </li>
<li> Store </li>
<li> About </li>
</ul>
并使用 .next() 方法从当前元素获取下一个元素:
$('ul li.current').next()
结果选择器是:
ul li.current.next()
而不是真正的选择器。我的意思是,我无法使用 CSS 来定位 ul li.current.next()
(因此它不是一个“真正的”选择器)。真正的选择器看起来像ul li
。
有没有办法获得下一个元素的“真实”选择器?
Confusing title, huh? I tried to explain it as best as i could.
What i mean is, if i have a menu like this:
<ul>
<li> Home </li>
<li class="current"> Portfolio </li>
<li> Store </li>
<li> About </li>
</ul>
and use the .next() method to get the next element FROM the current one:
$('ul li.current').next()
the result selector is:
ul li.current.next()
instead of a real selector. I mean, i can't target ul li.current.next()
with CSS (and therefore it isn't a "real" selector). The real selector would look like ul li
.
Is there any way to get the "real" selector of the next element?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您想要等效的 CSS 选择器,则为:
请参阅:相邻同级选择器
注意: IE6 不支持。
另请注意,jQuery 不使用 CSS 选择器来匹配所有元素。选择器语法与 CSS 类似(它是超集),因为它似乎是最自然的方式。它使用浏览器提供的方法(例如
querySelectorAll
),但它还必须遍历 DOM 才能找到元素。例如,您永远无法将
$('td').closest('tr')
与 CSS 匹配,因为您无法使用 CSS“向上移动”。我希望这能回答您的问题,如果没有,请澄清。
If you want the equivalent CSS selector, it would be:
See: Adjacent sibling selector
Note: Not supported in IE6.
Also note that jQuery does not use CSS selectors to match all the elements. The selector syntax is just similar (it is a superset) to CSS because it seemed to be the most natural way. It uses methods provided by the browser (e.g.
querySelectorAll
) where it can but it also has to traverse the DOM in order to find the elements.E.g. you can never match
$('td').closest('tr')
with CSS as you cannot "move up" with CSS.I hope this answers your question, if not please clarify it.
$('ul li.current').next()
将仅返回下一个。它会返回
$('ul li.current').next()
will simply return the next<li>
. It will return这有效:
或者您可以跳过 var 分配并像这样访问它:
This works:
Or you can skip the var assignment and access it like this: