jquery选择表中的相应列

时间:2013-01-21 10:06:51

标签: jquery

我有以下表格标记

<table>
 <tr>
  <td>
   <checkbox />
  </td>
  <td id="delete">

  </td>  
 </tr>
 <tr>
  <td>
   <checkbox />
  </td>
  <td id="delete">

  </td>  
 </tr>
</table>

我想要达到的目标是 - 当用户单击其中一列中的复选框时,我想在同一行中向列(删除ID)添加一个类。我怎样才能做到这一点?该列可能不在复选框旁边的列中。

3 个答案:

答案 0 :(得分:2)

首先你应该使用class删除,因为id属性必须是唯一的,那么这样的东西应该有效:

$('input[type="checkbox"]').change(function() {
    $(this).closest('td').siblings('.delete').addClass('foo');
});

答案 1 :(得分:2)

<强> DEMO

您不能在一个页面中拥有多个ID !!!

$('table :checkbox').change(function(){
  $(this).closest('tr').find('.delete').addClass('something');
});

http://api.jquery.com/closest/
http://api.jquery.com/find/
http://api.jquery.com/addclass/

那就是直接回答你的问题 但是谈论复选框我想你想要这个切换功能:

$('table :checkbox').change(function(){
  $(this).closest('tr').find('.delete').toggleClass('something');
});

<强> DEMO

  

该列可能不在复选框旁边的列中。

.find()方法是将在.delete元素的子元素内搜索.closest()的工作。

答案 2 :(得分:0)

试试这个:

$('input[type="checkbox"]').change(function() {
   $(this).closest('td').siblings('.delete').toggleClass('ToBeAddedClass');
});

这将在复选框更改时切换班级。

  • when checked添加课程。
  • when unchecked删除添加的课程。

注意:

使用delete作为css class name代替id named delete