我对 jQuery 中过滤的工作方式有点困惑。显然,这两行是不同的:
$('svg').filter('.woah')
$('svg[class=woah]')
为什么会这样?这是我制作的一个简单的 jsFiddle:http: //jsfiddle.net/8MLRE/4/
我对 jQuery 中过滤的工作方式有点困惑。显然,这两行是不同的:
$('svg').filter('.woah')
$('svg[class=woah]')
为什么会这样?这是我制作的一个简单的 jsFiddle:http: //jsfiddle.net/8MLRE/4/
第一个可能扮演后置过滤器的角色,例如你有 10 个元素并想继续使用some_filter_here
.
第二个是一个简单的选择器。
所以,$('svg')
你会得到 3 个元素,然后用一些选择器过滤它们,[class=woah]
所以剩下一个。与$('svg[class=woah]')
您同在,即刻获得。
第一个获取所有svg
元素,然后使用 filter 函数过滤它们并返回具有 class 的元素woah
。我认为这是一项开销,因为此功能可以在一次调用中完成。
第二个做同样的事情,但使用他的属性选择器。最后一个更好,因为它只使用一个函数调用。但这是获取所有svg
元素的更好方法 class woah
。
相信你想达到$('svg.woah')