2011-01-15 16 views
3

ちょっと、 jqueryでセルの内容を変更しようとしていますが、動作しないようです。セルの内容を別のセルから変更する

<table border="1"> 
<tr> 
<td>cell 1 
<td>cell 2 
<td>cell 3 
<tr> 
<td>cell 4 
<td>cell 5 
<td>cell 6 <a onclick="javascript:$(this).parent().parent().('td').html('test');">Click</a> 
<tr> 
<td>cell 7 
<td>cell 8 
<td>cell 9 
</table> 

私は(「TD」)は明らかにありえない作業6.セル内からセル4の内容を変更したい:私たちは、このテーブルを持って言うことができます。どのように私はクラスまたはidsの使用せずにセル6からセル4にアクセスできますか? ありがとうございました

答えて

5

あなたは1つ上に戻って2つに戻ってほしいので、代わりにこれが必要になります。

$(this).parent().prevAll(':last').html('test'); 

するか、この:

$(this).parent().siblings(':first-child').html('test'); 

...またはあなたはjQueryのなしでかなり簡単にそれを行うことができます:

this.parentNode.parentNode.cells[0].innerHTML = 'test'; 
+1

感謝!それはそれでした! – robs

0

変更

$(this).parent().prev().prev().html('test'); 

または、このような

javascript to:

$(this).parent()。parent()。 子( 'td')。eq(0) .html( 'test');

これは、テーブル行(セル4)の最初の子tdを取得し、HTMLを設定します。あなたは、テーブル内の第四<td>を変更したい場合は

0

は、あなたがclosestテーブルまで移動し、findその中に第四<td>ことができます。その後、そのHTMLを変更することができます。

$(this).closest('table').find('td:eq(3)').html('test'); 

Live Example

関連する問題