2017-04-06 14 views
1

値を持っている場合は、次のオプションがYesまたはNoのために与えることができtd paidTDは、私は次のコードを持っている「いいえ」別のTDにクラスを追加

<td class="bedrag"> 
    #_ATT{Factuur bedrag} 
</td> 
<td class="paid"> 
    #_ATT{Betaald}{Ja|Nee} 
</td> 

を私は依存bedragの背景を変更希望td paidで選ばれたものについて私は行く最良の方法は、addClassにJavascriptを使用していたと思った。だから私はしばらくの間、周りGoogleで検索し、コードのこの部分を見つけた:

jQuery('a:contains("Sponsored")').closest('.post-item').addClass('sponz'); 

私は私のニーズに合わせてそれを変更:

$('.paid:contains("Nee")').closest('.bedrag').addClass('sponz'); 

しかし、それは動作しませんでした。これは、TD paidにクラス sponzを追加

$('.paid:contains("Nee")').addClass('sponz'); 

:だから私は、次のコードを試してみました。しかし、それをbedragに追加したいと思います。だから、私はこれを試した:

('.bedrag:has(.paid:contains("Nee"))').addClass('sponz'); 

これも動作しませんでした。

誰もが、それはsponzを追加するように働いて、このコードを取得する方法を知っているユーザーがオプションを選択しNeetd bedrag?前もって感謝します!

+0

SOあなたはDIVを言うが、あなたはTDを意味ですか? – epascarello

答えて

4

closest()は、親を探すのに必要なものではありません。 .bedrag.paidの兄弟なので、あなたの代わりにprev()を使用する必要があります。

$('.paid:contains("Nee")').prev('.bedrag').addClass('sponz');
.sponz { color: #C00; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td class="bedrag">bedrag 1</td> 
 
    <td class="paid">Nee</td> 
 
    </tr> 
 
    <tr> 
 
    <td class="bedrag">bedrag 2</td> 
 
    <td class="paid">Ja</td> 
 
    </tr> 
 
    <tr> 
 
    <td class="bedrag">bedrag 3</td> 
 
    <td class="paid">Nee</td> 
 
    </tr> 
 
</table>

+0

ありがとう!それはトリックでした!私はできるときあなたの答えを受け入れるよ! –

+0

'.siblings'の' .prev'をより堅牢な方法で交換するために安全です.htmlは正確ではありませんか? – Zze

+0

可能ですが、ここでの意味は要素がすべてテーブルの同じ行にあることです。 'siblings()'を使いたければ、おそらく ':first'と組み合わせる必要があります。 –

1

あなただけの場合は行うことはできません ?

if ($('.paid:contains("Nee")').length !== 0) { // there's at least an element 
    // add class to the right element 
} 
関連する問題