ExtJs错误?选择工作不正常
问题描述:
看来,这个选择是不是在ExtJS的工作:ExtJs错误?选择工作不正常
Ext.select('.serviceGridItem:not(:first)')
它选择的所有项目,而这应该只选择最后三个(有四个总)。查看下面链接的jsfiddle并查看结果的控制台。
这是结果:
Ext.select('.serviceGridItem')
constructor {elements: Array[4], el: constructor, self: function, superclass: Object, config: emptyFn…}
Ext.select('.serviceGridItem:first')
constructor {elements: Array[1], el: constructor, self: function, superclass: Object, config: emptyFn…}
Ext.select('.serviceGridItem:not(:first)')
constructor {elements: Array[4], el: constructor, self: function, superclass: Object, config: emptyFn…}
下面是HTML:
<div class="x-component x-window-item x-component-default" id="dataview-1049" tabindex="-1" style="">
<a href="#" class="serviceGridItem">Legal Compliance</a>
<a href="#" class="serviceGridItem">Departure Package</a>
<a href="#" class="serviceGridItem">House Search</a>
<a href="#" class="serviceGridItem">Language Training</a>
</div>
中的JavaScript:
Ext.onReady(function() {
console.log(Ext.select('.serviceGridItem'));
console.log(Ext.select('.serviceGridItem:first'));
console.log(Ext.select('.serviceGridItem:not(:first)')); // should return Array[3] not Array[4]
});
的的jsfiddle(看看你的控制台的结果):
这是一个错误还是有我做错了什么?
答
我真的不能告诉你:first
伪选择器应该如何表现。这不是CSS3标准的一部分,我认为它是与jQuery一起推出的。 ExtJS似乎以某种方式解释它,但我在文档中找不到任何关于它的信息。
但是,你可以尝试使用CSS3 :first-child
选择:
Ext.select('.serviceGridItem:not(:first-child)');
这似乎在你的提琴工作得很好:http://jsfiddle.net/k4ggq/6/
谢谢,这总比没有好。但是,我发布这个bug的原因是因为我发现另一个bug,因此':contains()'似乎根本不起作用。你对这个jsfiddle有什么看法? http://jsfiddle.net/k4ggq/7/ – user1477388
同样在这里,不是真正的CSS规范的一部分([再]](http://www.w3.org/TR/selectors/#content-selectors))。但是,它似乎工作,如果你省略引号'“”'([Fiddle](http://jsfiddle.net/k4ggq/8/)) – matt
非常好!我从来没想过这点。 – user1477388