我正在尝试根据我找到的一些不同的教程向 jQuery 添加一个自定义的伪选择器,目前使用的是 v1.8.0。我实际上是在尝试实现不区分大小写的 :contains 选择器。
我现在的化身是这样的
$.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 项的数组,第一项是我的选择器在 :icontains 调用之前返回的 DOM 对象,第二项是未定义的。
有谁知道为什么会发生这种情况?