2017-01-15 6 views
1

私はいくつかのdivの[最高1000]クラス名が同じで色が異なっています。CSS値に基づいて非表示要素のクリックを選択してトリガーします

 <div class="class-1" style="background-color:red; display:none;">1</div> 
    <div class="class-1" style="background-color:black; display:none;">2</div> 
    <div class="class-1" style="background-color:rgb(0,12,34); display:none;">3</div> 
    ... 
    <div class="class-1" style="background-color:rgb(5,12,65); display:none;">1000</div> 

次のHTMLを参照してください。 ここでどのように私は、その背景色黒でクラス1のクリックを誘発することができますか?私はフィルタ機能でチェックしますが、正しい結果を得られませんでした。

$(".class-1").filter(function(){ 
     var match="black"; 
    return ($(".class-1").css('background-color') == match); 
}).trigger("click"); 

助けてください。

+0

これは良い方法ではないようですが、可能であれば異なるクラスにスタイルを割り当て、$( "className")を使ってクエリを行う必要があります。click(function(){}); ? –

答えて

1

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

var match = "rgb(0, 0, 0)"; 

ここはCodePen:http://codepen.io/rachitgulati26/pen/MJjaBpです。

+0

codepenに書き込むのではなく、ここにコードを添付してください。ありがとうございました 。 –

+0

また、選択したクラスに余分なクラスを追加するにはどうすればよいですか?私は背景色を持つものに選択された名前のクラスを追加する必要があります例えば、黒 –

0

コードに2行目の終了引用符を書くのを忘れているかもしれません。

var match="black";に変更して、それが役立つかどうかを確認してください。

jQuery関数.css()はうまくいくので、うまくいくはずです。

詳細については、https://api.jquery.com/css/を参照してください。しかし、最初の例に基づいて、そのように色の文字列を取得することは可能です。

0

データタグを使用することをお勧めします。 HTML

<div data-color="black">black</div> 

jQueryを使用すると、以下比較すると

$('[data-color="black"]').html('black found'); 
+0

申し訳ありませんが、私はhtml構造を書き換えることはできません。 –

関連する問題