Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自定义Psuedo选择器在ExtJS中不工作_Javascript_Extjs - Fatal编程技术网

Javascript 自定义Psuedo选择器在ExtJS中不工作

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

我正在尝试创建一个使用ExtJS中的自定义伪选择器来执行不区分大小写的搜索。然而,我不断地发现这个错误:

未捕获的TypeError:对象#没有方法“containsSignOreCase”

以下是JSFIDLE(结果记录在控制台中):

下面是JavaScript:

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:)