我有一张桌子
<tbody>
<tr>
<td>101</td>
<td>37,17 m<sup>2</sup></td>
<td>1</td>
<td>3</td>
<td></td>
</tr>
<tr>
<td>102</td>
<td>30,53 m<sup>2</sup></td>
<td>1</td>
<td>2</td>
<td></td>
</tr>
<tr>
<td>103</td>
<td>10,53 m<sup>2</sup></td>
<td>1</td>
<td>5</td>
<td></td>
</tr>
</tbody>
并且我想从第一个开始获取文本并将其设置为父级的id以像这样结束
<tbody>
<tr id="101">
<td>101</td>
<td>37,17 m<sup>2</sup></td>
<td>1</td>
<td>3</td>
<td></td>
</tr>
<tr id="102">
<td>102</td>
<td>30,53 m<sup>2</sup></td>
<td>1</td>
<td>2</td>
<td></td>
</tr>
<tr id="103">
<td>103</td>
<td>10,53 m<sup>2</sup></td>
<td>1</td>
<td>5</td>
<td></td>
</tr>
</tbody>
我写了类似的东西
var td = $('tobody td:first-child').text(); - returns 101102103
$('tobody tr').attr('id', td); - returns 101102103 for each tr
如何分开这个?
答案 0 :(得分:3)
只需迭代所有第一个<td>
元素,找到相应的父元素并设置其id
属性:
$('td:first-child').each(function() {
$(this).parent().attr('id', $(this).text());
});
如果你有更多的表或更大的文档,锚定操作是有意义的:
$('#table-id').find('td:first-child').each(function() {
var $this = $(this);
$this.parent().attr('id', $this.text());
});
答案 1 :(得分:1)
您可以使用each
来迭代td
并将id
分配给父tr
<强> Live Demo 强>
$('td:first-child').each(function(){
$(this).closest('tr').attr('id', $.trim($(this).text()));
});
答案 2 :(得分:1)
试试这个:
$('tobody tr').each(function(){
$(this).attr('id', $(this).find("td:eq(0)").text().trim());
});
或者简单地说:
$('tbody tr').attr('id' , function(){
return $(this).find("td:eq(0)").text().trim();
});
答案 3 :(得分:0)
$('tr').each(function() {
var $this = $(this),
theId = $this.find('td').first().text();
$this.attr('id', theId);
});
请注意,数字ID仅在HTML5中有效
答案 4 :(得分:0)
遍历.each()
中的<tr>
:
$('tbody tr').each(function(){
var txt = $.trim($('td:first',this).text());
$(this).attr('id', txt);
});