jQuery选择特定的表格单元格

时间:2011-12-14 20:00:29

标签: jquery

我需要从每个第一个<td> <img>数据标记中选择数据,处理它然后设置<td> <div>值,我尝试这样:

 $('tbody >tr').each(function() {
    var tr=   jQuery(this);
    var img = $(tr,'tr > img').attr('data');
    //next setting div value
  });

但这不起作用。

  <table>
         <thead>
            <tr>
                <th>..</th>
               ..
            </tr>
        </thead>
        <tbody>                           
            <tr>
                 <td> <img data="12"/>'> </td>
                 ..          
                 <td><div id="test"></div> </td>
                 <td>..</td>
            </tr>
            <tr>
            ..
            </tr>
        </tbody>
    </table>

3 个答案:

答案 0 :(得分:1)

var img = $(tr,'tr > img').attr('data');

应该是

var img = $(tr).children('td:first-child').children('img').attr('data');

演示:http://jsfiddle.net/bV6Qf/

答案 1 :(得分:1)

只要您使用.each(),请执行以下操作:

$('tbody > tr > td > img').each(function() {
    var data = $(this).attr('data');
    //next setting div value
});

或者,如果您需要选择嵌套在每行中的div,请执行以下操作:

$('tbody > tr').each(function() {
    var row = $(this);
    var data = row.find('> td > img').attr('data');
    row.find('.some_div').text(data);
});

答案 2 :(得分:1)

像这样试过

$('tbody td img, tbody td > div').each(function() {
      //your event handler here
});

使用该选择器,您可以获得一个选择器中imgdivs的两个元素。因此,您可以循环并处理每个元素