jquery prev - 带选择器

时间:2012-02-24 03:28:56

标签: jquery

为什么以下代码使用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>

2 个答案:

答案 0 :(得分:2)

  

“为什么以下代码会更改所有TD”

因为您选择了td所有$('td')个元素。

改为使用$(this).prev('.dupegroup'),或如果.dupgroup不直接相邻,请使用$(this).prevAll('.dupgroup')

答案 1 :(得分:0)

作为@am我说不应该工作,但如果你已经有一种独特的方法来抓住它......为什么不这样写呢

$('td.dupegroup').css({'background-color', 'red'});