我需要能够根据点击的行填充列标题输入。我需要使用:nth-child或.eq(0)或类似动态的东西,因为我不能在这里使用硬编码的ID。我有一个小提琴设置来突出显示当前行的单击,该行中的文本也应该成为标题输入的值。 http://jsfiddle.net/7vLdxddr/1/
的jQuery
$('table').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
}
else {
$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
});
HTML
<table>
<thead>
<tr>
<th><input type='text' /></th>
<th><input type='text' /></th>
<th><input type='text' /></th>
</tr>
</thead>
<tbody>
<tr>
<td>red</td>
<td>circle</td>
<td>1</td>
</tr>
<tr>
<td>orange</td>
<td>square</td>
<td>2</td>
</tr>
<tr>
<td>yellow</td>
<td>triangle</td>
<td>3</td>
</tr>
</tbody>
</table>
答案 0 :(得分:1)
你可以这样使用for循环迭代:
for(var i=0; i<$(this).find("td").length; i++)
{
$(this).closest("table").find("th").eq(i).find("input:text").val($(this).find("td").eq(i).text())
}
http://jsfiddle.net/ehsansajjad465/7vLdxddr/2/
这是更易读的代码:
for(var i=0; i<$(this).find("td").length; i++)
{
var th = $(this).closest("table").find("th").eq(i);
var td =$(this).find("td").eq(i);
th.find("input:text").val(td.text())
}