我想知道这两个表达式是否相同,因为如果它们是,它会使这更容易。这些jQuery表达式是否相同?
$('div', this).filter(':not(.trigger)')...
$('div:not([class*=trigger])', this)...
(this
提供在其下的上下文来寻找指定的div
)
我想知道这两个表达式是否相同,因为如果它们是,它会使这更容易。这些jQuery表达式是否相同?
$('div', this).filter(':not(.trigger)')...
$('div:not([class*=trigger])', this)...
(this
提供在其下的上下文来寻找指定的div
)
它们本质上不相同。第二个也过滤出所有名称中具有“触发”类别的div,因此例如也是如此。 “anothertrigger”和“triggerfoo”。
您还可以使用
$('div:not(.trigger)', this)...
这是恕我直言更清晰。
在你纠正之前,他接受了你的答案。 :( – ChaosPandion 2009-11-09 21:08:12
也许是因为我最初确实给出了更清晰的例子,对此我很抱歉,你的回答最初也是令人困惑,因为我没有看到OP编辑了这个问题。 – BalusC 2009-11-09 21:15:18
号
版1采取所有div而不类触发。
版本2将属性类中包含文本的所有div取为触发器。 这意味着与类mytrigger的div将是一个匹配。
编辑
,并提供更新的问题,这将是等同于第一个版本。
$('div:not(.trigger)', this)
你能再看一遍吗?我忘了第二个版本中的':not()'部分... – 2009-11-09 21:04:27
Alexsander:如果你正在寻找一个相当于第一个语句的语句,你可以使用'$('div:not(.trigger))) “'。 – 2009-11-09 21:05:24
顺便说一句,表达式本身是完全正常的CSS选择器,而不是jQuery特有的。 – bobince 2009-11-09 21:45:40