2009-11-09 45 views
0

我想知道这两个表达式是否相同,因为如果它们是,它会使这更容易。这些jQuery表达式是否相同?

$('div', this).filter(':not(.trigger)')...
$('div:not([class*=trigger])', this)...

this提供在其下的上下文来寻找指定的div

+0

顺便说一句,表达式本身是完全正常的CSS选择器,而不是jQuery特有的。 – bobince 2009-11-09 21:45:40

回答

2

它们本质上不相同。第二个也过滤出所有名称中具有“触发”类别的div,因此例如也是如此。 “anothertrigger”和“triggerfoo”。

您还可以使用

$('div:not(.trigger)', this)... 

这是恕我直言更清晰。

+0

在你纠正之前,他接受了你的答案。 :( – ChaosPandion 2009-11-09 21:08:12

+0

也许是因为我最初确实给出了更清晰的例子,对此我很抱歉,你的回答最初也是令人困惑,因为我没有看到OP编辑了这个问题。 – BalusC 2009-11-09 21:15:18

3

版1采取所有div而不类触发

版本2将属性类中包含文本的所有div取为触发器。 这意味着与类mytrigger的div将是一个匹配。

Selectors

编辑

,并提供更新的问题,这将是等同于第一个版本。

$('div:not(.trigger)', this) 
+0

你能再看一遍吗?我忘了第二个版本中的':not()'部分... – 2009-11-09 21:04:27

+1

Alexsander:如果你正在寻找一个相当于第一个语句的语句,你可以使用'$('div:not(.trigger))) “'。 – 2009-11-09 21:05:24