Javascript 自定义Psuedo选择器在ExtJS中不工作
我正在尝试创建一个使用ExtJS中的自定义伪选择器来执行不区分大小写的搜索。然而,我不断地发现这个错误: 未捕获的TypeError:对象#没有方法“containsSignOreCase” 以下是JSFIDLE(结果记录在控制台中): 下面是JavaScript:Javascript 自定义Psuedo选择器在ExtJS中不工作,javascript,extjs,Javascript,Extjs,我正在尝试创建一个使用ExtJS中的自定义伪选择器来执行不区分大小写的搜索。然而,我不断地发现这个错误: 未捕获的TypeError:对象#没有方法“containsSignOreCase” 以下是JSFIDLE(结果记录在控制台中): 下面是JavaScript: Ext.ComponentQuery.pseudos.containsIgnoreCase = function(n, i, m) { return Ext.get(n).dom.innerText.toUpperCase
Ext.ComponentQuery.pseudos.containsIgnoreCase = function(n, i, m) {
return Ext.get(n).dom.innerText.toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
};
var showEls = Ext.query('.serviceGridItem:containsIgnoreCase(mytext)');
如何创建这个伪选择器
参考当您需要的是DomQuery时,您似乎正在尝试使用ComponentQuery。前者允许您在当前页面中选择Ext.Component类,后者选择DOM元素
Ext.DomQuery.pseudos.containsIgnoreCase = function(elems, strToMatch) {
var results = [], ri = -1;
strToMatch = new RegExp(strToMatch, "ig");
for(var i = 0, len = elems.length; i < len; i++){
var dom = Ext.get(elems[i]).dom;
if(strToMatch.test(dom.textContent) || strToMatch.test(dom.innerText)){
results.push(elems[i]);
}
}
return results;
};
Ext.DomQuery.pseudos.containsIgnoreCase=函数(elems,strotmatch){
var结果=[],ri=-1;
strToMatch=新的RegExp(strToMatch,“ig”);
对于(变量i=0,len=elems.length;i
上述方法应该有效-注意innerText在Firefox中不起作用,因此需要进行两个测试
请参阅更新的示例谢谢,伙计!还在学习ExtJS-希望我在使用jQuery:)