2016-06-16 13 views
1

私はdrupalサイトにjQueryを使用しています。 jQueryを使って現在の要素にクラスを追加することはできません。このjqueryは動作しません

私は、このaddclassを警告のあるif条件の中に入れます。警告が正常に機能しています。しかし、addclassは機能しません。

if (jQuery(".explore_degree_widget_area li a").has(":contains('Associates')")) { 
    jQuery(this).addClass('icon_associate'); 
    alert('Yes'); 
} 

私を助けることができますか?

+2

を試してみてください。 –

+0

@DharmParmar間違っています。 '.text()'や '.html()'などのメソッドで '.each()'反復やコールバック関数の中で '$(this)'を使うことができます。 – VisioN

答えて

3

条件が常にtrueの場合、has()はフィルタリングされたjQueryオブジェクトを返します。また、has()は、それが子孫であることを確認するだけです。filter()を使用する必要があります。

jQuery(".explore_degree_widget_area li a").filter(":contains('Associates')").addClass('icon_associate'); 

又は組み合わせセレクタ

jQuery(".explore_degree_widget_area li a:contains('Associates')").addClass('icon_associate'); 
+0

'.has()'の必要はありません。 :それをセレクターで組み合わせる。 – VisioN

+0

偉大なPranav C Balan。私のために働くものは持っていないものです()。 ありがとうございます! –

+0

@BhavanKumarNatarajan:喜んで助けてください:あなたは 'filter()'を使用する必要があります。 'has()' –

1
this

を使用コンテキストにではなく、要素を指します。次を使用します。

jQuery(".explore_degree_widget_area li a:contains('Associates')") 
    .addClass('icon_associate').each(function() { 
     alert('Yes'); // if you really want to have it 
    }); 
0

あなたが任意のイベント内でそれを使用している場合にのみ、$(this)を取得することができます

$(".explore_degree_widget_area li a:has(:contains('Associates'))").addClass('icon_associate'); 
関連する問題