如果td具有值“No”,则将类添加到不同的td

时间:2017-04-06 13:23:30

标签: javascript jquery html css

我有以下代码:

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

td paid中,可以选择是或否。我想根据bedrag中选择的内容更改td paid的背景。我认为最好的方法是使用Javascript addClass。所以我用Google搜索了一段时间,发现了这段代码:

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

我改变它以满足我的需要:

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

但那没用。所以我尝试了以下代码:

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

这会将课程sponz添加到td paid。但我想将其添加到bedrag。所以我接着尝试了这个:

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

但这也行不通。

任何人都知道如何使这段代码正常工作,以便当用户选择sponz选项时,它会td bedrag添加Nee?提前谢谢!

2 个答案:

答案 0 :(得分:4)

closest()并不是你所需要的,因为它寻找父母。 .bedrag.paid的兄弟,因此您需要使用prev()代替:

&#13;
&#13;
$('.paid:contains("Nee")').prev('.bedrag').addClass('sponz');
&#13;
.sponz { color: #C00; }
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

你不能做一个if吗?

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