为什么以下代码使用class = dupegroup red更改表中的所有TD?触发click事件的TD中有一个复选框。我想知道行中第一个TD的值,所以我在其上放了一个class = dupegroup。 ajax调用更新数据库。这只是一个测试,所以我可以找到一种方法来获得第一个TD的价值。
$('.notdupe').live('click', function (e) {
$.ajax({
type: "POST",
url: "cfc/basic.cfc?method=SetNotDupe",
data: "indivNum=" + $(e.target).val() + "&SetValue=" + $(e.target).is(":checked"),
error: function (xhr, textStatus, errorThrown) {
}
});
$('td').prev('.dupegroup').css('background-color', 'red');
});
从评论中添加HTML
<td class="dupegroup">#dupe_group_number#</td>
<td>
<input type="checkbox" name="UserIDList" value="#userid#"/>
</td>
<td>
<a href="#request.controlURL#individuals/?fa=viewIndiv&dkey=#userid#" target="_blank">
#userid#
</td>
<td>#lastname#</td>
<td>#firstname#</td>
<td>#nickname#</td>
<td>#companyname#</td>
<td>#address1#</td>
<td>#zipcode#</td>
<td>#state#</td>
<td align="center">
<input class="notdupe" type="checkbox" name="indivID" value="#userid#" checked />
</td>
答案 0 :(得分:2)
“为什么以下代码会更改所有TD”
因为您选择了td
所有$('td')
个元素。
改为使用$(this).prev('.dupegroup')
,或如果.dupgroup
不直接相邻,请使用$(this).prevAll('.dupgroup')
。
答案 1 :(得分:0)
作为@am我说不应该工作,但如果你已经有一种独特的方法来抓住它......为什么不这样写呢
$('td.dupegroup').css({'background-color', 'red'});