令人困惑的标题,是吧?我尽力解释了。
我的意思是,如果我有这样的菜单:
<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
。
有什么方法可以得到下一个元素的“真实的”选择器吗?
3条答案
按热度按时间9bfwbjaz1#
如果你想要等效的CSS选择器,它应该是:
请参阅:相邻同级选择器
**注意:**IE6不支持。
还要注意,jQuery并不使用CSS选择器来匹配所有元素。选择器语法与CSS很相似(它是一个超集),因为它似乎是最自然的方式。它使用浏览器提供的方法(例如
querySelectorAll
),但它也必须 * 遍历 * DOM以找到元素。例如,你永远不能将
$('td').closest('tr')
与CSS匹配,因为你不能用CSS“向上移动”。我希望这回答了你的问题,如果没有,请澄清。
avkwfej42#
$('ul li.current').next()
将返回下一个<li>
。它会回来的g6ll5ycj3#
这个方法的作用是:
或者你可以跳过var赋值,像这样访问它: