定制的jQuery伪选择接收未定义参数(Custom jQuery Pseudo-selector

2019-09-21 13:54发布

我试图自定义的伪选择添加到jQuery的,目前使用v1.8.0,基于几个不同的教程,我发现。 我基本上是试图实现不敏感的情况下:含有选择。

我目前的化身看起来像这样

$.expr[':'].icontains = function(obj, index, meta, stack){
     return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;
};

它来自这个职位 。 这似乎是选择是越来越正确初始化,但是当jQuery的调用函数只被定义obj参数。 剩下的3个参数是不确定的未来。

当我登录参数到控制台我看到的2项的数组,其中第一项是由我选择了之前返回的DOM对象:icontains打电话,第二个是不确定的。

没有人有一个想法,为什么这会发生?

Answer 1:

他们为灒重写1.8。 目前, 定义一个伪的方法如下: http://jsfiddle.net/bazWj/ 。

$.expr.pseudos.icontains = $.expr.createPseudo(function(arg) {
    return function(elem) {
         return (elem.textContent
                  || elem.innerText
                  || jQuery(elem).text()
                  || '')
        .toLowerCase()
        .indexOf(arg.toLowerCase()) >= 0;

    };
});


文章来源: Custom jQuery Pseudo-selector Receiving Undefined Arguments