使用jquery设置td的值

使用jquery设置td的值,jquery,html-table,Jquery,Html Table,从每行中的复选框中,如果选中,我希望更新该行的表数据值。我试过: $('#'+id).each(function(index, cell){ $('#data2').html("New Value"); }); 但它不起作用。我通过以下方式访问ID: if ($('.cbox1:checked').length) { var id = ''; $('.cbox

从每行中的复选框中,如果选中,我希望更新该行的表数据值。我试过:

$('#'+id).each(function(index, cell){
        $('#data2').html("New Value");
    });
但它不起作用。我通过以下方式访问ID:

            if ($('.cbox1:checked').length) {
                      var id = '';
                      $('.cbox1:checked').each(function () {
                        id = $(this).val();
                      });
              }
我的Html是

        <table class="mytable" id="tableid" > 
        <tr> 
            <th style="width: 10px;"> </th> 
            <th> DATA1</th> 
            <th>DATA2</th> 
            <th>DATA3 </th> 
        </tr> 
        <tr contenteditable="false" class="content193" id="193"> 
            <td>  <input class="cbox1" type="checkbox" value="193"></td> 
            <td id="data1">45</td> 
            <td id="data2">566</td> 
            <td id="data3"> 12.12.2016</td> 
        </tr> 
        <tr contenteditable="false" class="content194" id="194"> 
            <td><input class="cbox1" type="checkbox" value="194"></td> 
            <td id="data1">456</td> 
            <td id="data2">6745</td> 
            <td id="data3"> 11.10.2016</td> 
        </tr> 
        <tr contenteditable="false" class="content199" id="199"> 
            <td><input class="cbox1" type="checkbox" value="199"></td> 
            <td id="data1">tr</td> 
            <td id="data2">24</td> 
            <td id="data3"> 20.01.2015</td> 
        </tr> 
        <tr contenteditable="false" class="content201" id="201"> 
            <td><input class="cbox1" type="checkbox" value="201"></td> 
            <td id="data1">tr</td> 
            <td id="data2">24</td> 
            <td id="data3"> 20.01.2015</td> 
        </tr> 
    </table>

数据1
数据2
数据3
45
566
12.12.2016 
456
6745
11.10.2016 
tr
24
20.01.2015 
tr
24
20.01.2015 

对每行重复的元素使用类而不是ID。然后让选择器在所选行中查找该类

$(“#doit”)。单击(函数(){
$('.cbox1:checked')。每个(函数(){
var id=$(this.val();
$('#'+id+'.data2').html(“新值”);
});
});

数据1
数据2
数据3
45
566
12.12.2016
456
6745
11.10.2016
tr
24
20.01.2015
tr
24
20.01.2015

单击我
您根本不需要这些类或ID。您只需找到最靠近已更改元素的行,并直接访问它的
td
s即可:

$('.cbox1').change(函数(){
var$row=$(this).closest('tr');//获取当前行
$row.find('td').eq(1).text('new value');//更改第一个单元格
$row.find('td').eq(2).text('new value');//更改第二个单元格
$row.find('td').eq(3).text('new value');//更改第三个单元格
}); 

数据1
数据2
数据3
45
566
12.12.2016 
456
6745
11.10.2016 
19
24
20.01.2015 
15
24
20.01.2015 

$('#'+id)。每个…
每个…
都应该只有一个
'#'+id
document@danronmoon:我不明白。请澄清。同一id属性的多个HTML无效。您需要更改重复的id以改用类。@温特布拉德:实际上,这些表是使用PHPchange从数据库生成的,将它们全部更改为类并使用遍历
$('.cbox1')。更改(function()var$row=$(this.nestest('tr')})
然后从$row..
$row.find('td').eq(2).文本('new value');})