2012-03-15 8 views
0

私の問題は最初は簡単だったようですが、私は立ち往生しました。カスタム属性が特定の値を持っているかどうかをチェック

いくつかのカスタム属性を持つページにいくつかのコンテナ(div)があります。

<div class="myclass" myattr1="blah" myattr2="text1-text2-text3-text4-"></div> 

myattr1とmyattr2は私によって定義されます。

すべてのdivはページの読み込み時に表示されます。

リストからのユーザーの選択に応じて、私はmyattrib1 = "blah"でdivを表示して残りを隠したいと思います。

私は同じアプローチがattrib2で結果をフィルタリングするために使用されるすべての

$('#mySelectID').change(function() 
{ 
var startName = $(this).val(); 

$(".myclass").not('[myattrib1!="+startName+"]').toggle(); 

}); 

でいない成功を収めて、次のコードを試してみましたが、私はmyattrib2が使用されます| =「+ startName +」(私はこれを考えますmyattr2 = "text1-text2-text3-text4-"の最後に余分があるのはなぜですか?)

このようなフィルタリングを適切に行う方法については、誰にでもアドバイスできますか? ありがとうございます!

答えて

1

あなたは閉じていますが、構文の強調表示からわかるように、文字列の連結は実行されていません。 +startName+は文字通りに解釈されます。あなたはdata-*属性の代わりに、カスタムのものを使用してする必要があることを

.not('[myattrib1!="' + startName + '"]') 

注:引用符とあなたの罰金を修正。

+0

oh my。今私はかなり愚かな気がします...明白な間違いを私に指摘してくれてありがとう。 – andrew

関連する問題