0

我有一张桌子

<table>
<tr><td><input radio name="R1" onClick=getOtherColumnData()>first</td><td>TR1-TD2</td><td>TR1-TD3</td><td>TR1-TD4</td></tr>
<tr><td><input radio name="R1" onClick=getOtherColumnData()>Second</td><td>TR2-TD2</td><td>TR2-TD3</td><td>TR2-TD4</td></tr>
<tr><td><input radio name="R1" onClick=getOtherColumnData()>first</td><td>TR3-TD2</td><td>TR3-TD3</td><td>TR3-TD4</td></tr>
</table>

现在,当我单击单选按钮时,如何获取其他列数据?我正在尝试使用

$(td)('nth-child(3) div').text();

但它返回所有行的第三个 TD 数据,但我只想返回单击单选按钮的特定行。

感谢您的帮助!

尼莱什

4

2 回答 2

1

鉴于您已经在使用 jQuery,为什么不使用它来绑定点击处理程序呢?然后在处理程序this中将引用单击的单选,并$(this).closest("tr")为您提供它所在的行。如果您想通过索引或其他选择器选择特定单元格,您可以从那里使用.find()或获取该行的其他单元格.children(). 或者您可以使用$(this).parent()获取收音机所在的单元格并$(this).parent().siblings()获取该行中的其他单元格。

$('input[name="R1"]').click(function() {
    var $tr = $(this).closest("tr"),
        cell3content = $tr.children().eq(2).text();  // get content of third cell
    // or
    var $allOtherCellsInRow = $(this).parent().siblings();
});
于 2012-04-06T23:15:58.907 回答
0

您应该将this参数传递给您的函数,而不是获取其他列数据,

<table>
<tr><td><input type="radio" name="R1" onClick=getOtherColumnData(this)>first</td><td>TR1-TD2</td><td>TR1-TD3</td><td>TR1-TD4</td></tr>
<tr><td><input type="radio" name="R1" onClick=getOtherColumnData(this)>Second</td><td>TR2-TD2</td><td>TR2-TD3</td><td>TR2-TD4</td></tr>
<tr><td><input type="radio" name="R1" onClick=getOtherColumnData(this)>first</td><td>TR3-TD2</td><td>TR3-TD3</td><td>TR3-TD4</td></tr>
</table>

<script>
function getOtherColumnData(e) {
   $(e).parent().siblings().each(function() {
        alert($(this).html());
    });        
}
</script>​

你可以在这里看到一个现场演示

于 2012-04-06T23:09:03.310 回答