看来这个选择器在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(在控制台中查找结果):
这是一个错误还是我做错了什么?
答案 0 :(得分:2)
我无法告诉你:first
伪选择器应该如何表现。它不是CSS3标准的一部分,我认为它是jQuery引入的。 ExtJS显然似乎以某种方式解释它,但我在文档中找不到任何关于它的内容。
但是,您可以尝试使用CSS3 :first-child
选择器:
Ext.select('.serviceGridItem:not(:first-child)');
这似乎在你的小提琴中运作得很好:http://jsfiddle.net/k4ggq/6/