如何从第一个celDiv单选按钮获取其他celDiv数据?

时间:2012-04-06 22:51:42

标签: jquery jquery-selectors

我有一张桌子

<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();

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

感谢您的帮助!

Nilesh制作

2 个答案:

答案 0 :(得分: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();
});

答案 1 :(得分: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>​

you can see here a live demo