我有以下代码:
<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
?提前谢谢!
答案 0 :(得分:4)
closest()
并不是你所需要的,因为它寻找父母。 .bedrag
是.paid
的兄弟,因此您需要使用prev()
代替:
$('.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;
答案 1 :(得分:1)
你不能做一个if吗?
if ($('.paid:contains("Nee")').length !== 0) { // there's at least an element
// add class to the right element
}