我有一张桌子
<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制作
答案 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>