私が見つけたいくつかの異なるチュートリアルに基づいて、現在v1.8.0を使用しているjQueryにカスタム疑似セレクターを追加しようとしています。私は基本的に、大文字と小文字を区別しない :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 オブジェクトであり、2 番目の項目は未定義です。
なぜこれが起こるのか、誰かが考えを持っていますか?