2012-01-09 11 views
8

jQuery containを使用して、入力の文字列とdivのコンテンツを比較しようとしています。jQueryのcontainsとtoLowerCase()の使用

問題は、大文字小文字に関係なく文字列が含まれているかどうかを確認できます。 .dDimensionのdiv要素の一つが「日付」を含んでおり、ユーザが「D」キーを押した場合

$(document).ready(function() { 
    drawDimensions('dContent'); 
    $('#dSuggest').keyup(function() { 
     var dInput = this.value; 
     $(".dDimension:contains('" + dInput + "')").css("display","block"); 
    }); 
}); 

だから、私はその項目を表示したい:

は、これは私の関数です。

は可能ですか?

+1

の可能重複[大文字小文字を区別しないjQueryのがあります: selector?](http://stackoverflow.com/questions/187537/is-there-a-case-insensitive-jquery-contains-selector) –

答えて

18

あなたは.filter[docs]を使用することができます。

var dInput = this.value.toLowerCase(); 

$(".dDimension").filter(function() { 
    return $(this).text().toLowerCase().indexOf(dInput) > -1; 
}).css("display","block"); 
+0

私は '' not''関数を使って逆を確認できますか? –

+0

あるいは '> -1'を' === -1'に変更します。 –

+0

ありがとう!完璧に動作します。 –

1

あなたはjQueryのを拡張することにより、独自のセレクタを書くことができます。 the jQuery documentation for containsの最後のコメントはあなたに合うこと 'icontains' の実装を提供し、この

$.extend($.expr[':'], { 
    'containsi': function(elem, i, match, array) 
    { 
    return (elem.textContent || elem.innerText || '').toLowerCase() 
    .indexOf((match[3] || "").toLowerCase()) >= 0; 
    } 
}); 

Useage $(".dDimension:containsi('" + dInput + "')").css("display","block");

0

を試してみてください。

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

// Example usage. 
$("div:icontains('John')").css("text-decoration", "underline"); 
1

this exampleを見てください、彼は大文字と小文字を区別しないでjQueryのセレクタを拡張し、彼はこのように、containsiを呼び出すことセレクターが含まれています

$.extend($.expr[':'], { 
    'containsi': function (elem, i, match, array) { 
     return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || '').toLowerCase()) >= 0; 
    } 
}); 
+0

これは、ShankarSangoliが投稿したものとほぼ同じです(http://stackoverflow.com/a/8795791/218196)。 –

+0

@FelixKlingええ、それはまったく同じことです。しかし、元の著者への参照なしで:) –

関連する問題