2011-07-17 12 views
0

jQueryを使用して、文字列 'upper'で始まるクラスを含まず、文字列 'lower'で始まるクラスを含まないdiv要素をすべて選択するにはどうすればよいですか。ノー成功と以下の実施例のカップルを試みた:クラス一致のjQueryセレクタ

$('div:not([class^=upper])').filter(':not([class^=lower])') 

$('div').not('[class^=upper])').not('[class^=lower])') 

を教えてください...

+0

それはすべてのdivのを返す私にとってはうまくhttp://jsfiddle.net/D3BCJ/ – ingo

+0

私のために働くようだ、とnot条件に基づくものを除外しません。あなたのために同じことをしていないと確信していますか? – harrije

+0

複数のクラスがない場合、すべてのオプションが機能します。上位クラスと下位クラスがスペースで区切られたリストの最初のものではなかったため、私は[class * = upper]と[class * = upper]に変更するまで、not操作は失敗していた おかげで申し訳ありません、質問。 – harrije

答えて

0

これは少し冗長ですが、それはトリックを行う必要があります -

$('div').filter(function() { 
    return $(this).attr("class").substring(0,5).toLowerCase() != 'upper' && $(this).attr("class").substring(0,5).toLowerCase() != 'lower' 
}) 
0

あなたが引用する必要があり、この:not selector

$('div:not([class^=upper,class^=lower])'); 
0

をお試しください文字列の値を比較します。上記のいずれの例でも、lower"lower"に置き換えてください。上部についても同じことをする。

+0

ネストされた引用符は何の違いもありませんでした。ほとんどのスクリプトではネストされた引用符が使用されていますが、本書の "jQuery in Action"の例はそうではありません。 – harrije

関連する問題