我有一个选择器“ td > a.leftmenuitem:last, div > a.leftmenuitem:last
”,我想稍微简化一下。我已经尝试过“ * > a.leftmenuitem:last
”、“ td, div > a.leftmenuitem:last
”和“ (td, div) > a.leftmenuitem:last
”,它们都不像第一个选择器那样工作。如果不为每个选择器创建单独的选择器,这种事情在选择器语法中是不可能的吗?
问问题
271 次
6 回答
2
你不能简化:
td > a.leftmenuitem:last, div > a.leftmenuitem:last
没有共同点,因此您可以使用一个表达式选择所有相关的 td 和 div 元素。例如,如果他们都有 blah 类,你可以这样做:
.blah > a.leftmenuitem:last
但是如果可以避免的话,不要使用这种表达方式。类选择器很慢(与 ID 和标签选择器相比)。
只是有什么问题吗?
a.leftmenuitem:last
?
顺便问一下,你确定:last
是正确的选择吗?很多人误用它,误以为:last-child
. :last
只会匹配一个元素,即页面上找到的最后一个匹配元素。
于 2009-07-30T15:41:53.917 回答
1
更大的,有时更快。当您使用*而不是td时,您的查询会慢得多。
于 2009-07-30T15:39:15.153 回答
0
也许我只是感到困惑,但如果
* > a.leftmenuitem:last
会为你工作,那为什么不去
a.leftmenuitem:last
反而?
于 2009-07-30T15:41:51.153 回答
0
您正在使用的选择器是
Parent > Child
匹配由 指定Child
的元素中由指定的所有子元素Parent
。除非您<a>
在页面的其他地方使用不是<div>
and元素的子<td>
元素,否则为什么不直接使用
$('a.leftmenuitem:last')
我错过了什么吗?
于 2009-07-30T15:48:32.733 回答
0
我不认为你可以简化它。相反,我会选择提供您对独特课程感兴趣的链接,以便您可以简单地执行"a.<my-unique-class>:last"
. 这样 jquery 可以简单地扫描所有匹配<a>
的标签,而不用担心它们的父元素是一个<td>
元素。
于 2009-07-30T15:40:14.903 回答
0
您的选择器很简单。如果您想简化它,您可以执行以下操作:
$('a.leftmenuitem:last').parent().doWhateverYouWereGoingToDo();
然而,我怀疑这会导致更快的执行时间。
于 2009-07-30T15:41:15.663 回答