2013-11-28 81 views
0

Fefing to this example:Changing table cell contentsjquery操作表单元格

如何更改表格单元格,如果它们多于1列且单元格中没有内容,该如何更改表格单元格。

例如更改第二列中的第三个单元格?

<table width="200" border="1"> 
    <tr> 
    <th scope="col">Daten 1</th> 
    <th scope="col">Daten 2</th> 
    <th scope="col">Daten 3</th> 
    </tr> 
    <tr> 
    <td id="A1">1</td> 
    <td id="B1">1</td> 
    <td id="C1">&nbsp;</td> 
    </tr> 
    <tr> 
    <td id="A2">2</td> 
    <td id="B2">2</td> 
    <td id="C2">&nbsp;</td> 
    </tr> 
    <tr> 
    <td id="A3">3</td> 
    <td id="B3">3</td> 
    <td id="C3">&nbsp;</td> 
    </tr> 
    <tr> 
    <td id="A4">4</td> 
    <td id="B4">4</td> 
    <td id="C4">&nbsp;</td> 
    </tr> 
</table> 
+0

错误的想法:ID必须是唯一的 – pbenard

+0

$('#数据保留时间:第n个孩子(2)> TD:nth-孩子(3)') –

+0

只是错误的复制和粘贴不介意 –

回答

0

您正在寻找:nth-child选择器。就像它基于的CSS选择器一样,nth-child(i)采用基于1的索引。

​​

Here is a Fiddle表明它。

0

若要选择第二列的第三个单元格这意味着您必须先选择第三行,然后选择第二列。你的桌子上试试这个jQuery选择

$('#data tr:nth-child(3) td::nth-child(2)) 

甚至更​​好

$('#data').find('tr:nth-child(3)').find('td::nth-child(2)') 

即使这可能不是拿到表格单元格的最佳方式。

建议:如果你可以根据它们的索引给一些id给每个表格单元,那么它很容易计算id并使用$('#cellId_23')

每个单元格都有其唯一的ID。例如:Cell(1,1)可以像cell_11一样拥有id,Cell(1,2)可以拥有cell_12等等。

这将比上面两个选择器更好的性能。

0

您也可以使用eq()方法从0索引开始查找td。

var value = $('#table_id').find("td").eq(5).html();

0

类似,

jQuery(document).ready(function(){ 
    var t = document.getElementById('data'); 
    jQuery(t.rows[1].cells[2]).text('1st row last C'); 
    jQuery(t.rows[2].cells[2]).text('2nd row last C'); 

}); 

直播Demo

+0

$(function(){});与旧的$(document).ready(function(){})相同; – Soviut

+0

@Soviut谢谢.. –