2017-03-14 9 views
1

文字列がhtmlのクラスで検出されたときに特定のIDを取得できるようにする方法を試しています。たとえば、文字列が "Action"の場合は、 "categoryCont"クラスの次のStringからActionを検出して、そのIDがどのIDであったかを調べたいと思います。文字列が検出されたときにクラスからIDを取得

<button class = "categoryCont" id="1365" onclick="selection = (this.id), setupCategory()">Action and Adventure</button> 
<button class = "categoryCont" id="43040" onclick="selection = (this.id), setupCategory()">Comedies</button> 
<button class = "categoryCont" id="1568" onclick="selection = (this.id), setupCategory()">Sci-Fi and Fantasy</button> 
<button class = "categoryCont" id="43048" onclick="selection = (this.id), setupCategory()">Thrillers</button> 

はJQuery:

if($('.categoryCont:contains(text)')) 

それはそれぞれのバージョンを検索するように、私はこのコードを適応させることができますどのクラスにテキストが含まれている場合現時点では、私は単にチェックするjQueryのメソッドを使用していますテキストと一致する場合は、使用するIDを保存しますか?

ありがとうございました。

+0

このフィルタを開始するためにトリガを使用しますか? onclickや..のように? – StuyvesantBlue

+0

はい、ユーザー入力の変更を検出した時点で、メソッドを再実行します。 (私はそれがあなたが意味するものだと仮定します.JQueryの新機能です) – joshcawthorne

+0

kiranvjの答えを参照してください。 – StuyvesantBlue

答えて

2

これは動作するはずです。

$(".categoryCont:contains('Comedies')").attr('id'); 

この​​3210

更新

あなたがidセレクターを適用したい場合はまだあなたが行うことができ、特定の要素(IDを見つける必要はありません)

$(".categoryCont:contains('Comedies')").hide(); 

を非表示にするにはこれを行う:

var id = $(".categoryCont:contains('Comedies')").attr('id'); 
$("#" + id).hide(); 

また、テキストを変数に割り当てることもできます。

var text = "Comedies"; 

$(".categoryCont:contains('" + text + "')").attr('id'); 
+0

私は何かにIDを適用するのですか?たとえば、文字列を含む各IDを非表示にしたい場合、これをどのように使用できますか? – joshcawthorne

+0

最後の質問です。これは静的な検索、IE "コメディ"のために働くようですが、もしそれをvarに渡したいのであれば、例えば '$( "。categoryCont:contains(passedString)").attr(' id ');' – joshcawthorne

+0

@joshcawthorne回答が更新されました – kiranvj

関連する問題