我也是 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
或者任何类似的东西,应该可以工作。请明确我在选项 [1,2,3] 中做错了什么,因为大多数帖子都说使用 id[选项 4] 不好。我们如何使用 [name^=]“表示以 people_ 开头的任何元素”来实现。在 Ext 中可以吗?是否可以通过 REGEX 实现?(仅供引用)
请添加解释以更好地理解选择器。
最佳答案
您可以为所有与人员相关的文本组件添加一个额外的配置,例如 type:'people',而不是寻找正则表达式,并且您可以使用
var allPeopleComponents = Ext.ComponentQuery.query('textfield[type=people]');
上面将返回具有 type='people'
的组件数组。
请看一下here并为了更好地理解 ComponentQuery 选项 here
希望对您有帮助。
关于javascript - Ext Component 查询选择器格式和选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26376769/