我也是Sencha Touch 2&Ext的新手。我有jquery的知识,所以我将一些类似的内容联系起来以便快速理解,但是卡在选择器查询中。
我正在创建动态文本字段,如:
var autoSuggestField = 'people_' + counter; // suppose counter is looping 5 times
var field = new Ext.field.Text({
name: autoSuggestField,
itemId: 'testing', // just for testing
// itemId: autoSuggestField, // actual code
inputCls:'auto-suggest',
placeHolder:'Select People',
cls:'place-holder',
listeners: {
clearicontap:function(obj, e, eOpts) {
// tried option 1
var allPeople = Ext.ComponentQuery.query('.place-holder .auto-suggest');
console.log(allPeople); // console says '[]'
// tried option 2
var allPeople = Ext.ComponentQuery.query('.place-holder');
console.log(allPeople); // console says '[]'
// tried option 3
var allPeople = Ext.ComponentQuery.query('.auto-suggest');
console.log(allPeople); // console says '[]'
// tried option 4
var allPeople = Ext.ComponentQuery.query('#testing');
console.log(allPeople); // console says '[class , class, class]'
}
}
});
但是我正在寻找一些东西:
// var allPeople = Ext.ComponentQuery.query('[name^=people_]'); // as we do jquery
或类似的东西,应该可以。请清除我在option [1,2,3]中做错的事情,因为大多数帖子都说使用id [option 4]是不好的。我们如何使用[name ^ =]“它表示任何以people_开头的元素”来实现。 Ext可能吗?通过REGEX可以吗?
请添加说明以更好地理解选择器。
最佳答案
除了寻找常规的表达式外,您还可以为所有与文本相关的与文本相关的组件添加一个额外的配置,如type:'people',并且可以使用
var allPeopleComponents = Ext.ComponentQuery.query('textfield[type=people]');
上面将返回具有
type='people'
的组件数组。请查看here,以更好地理解ComponentQuery选项here
希望对您有帮助。