1

私はテーブルを持っています

<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

これを分離する方法??

4

5 に答える 5

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());
});
于 2013-03-26T10:32:17.487 に答える
1

eachを繰り返して親tdに割り当てるために使用できますidtr

ライブデモ

$('td:first-child').each(function(){    
   $(this).closest('tr').attr('id', $.trim($(this).text()));
});
于 2013-03-26T10:30:42.500 に答える
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();
});
于 2013-03-26T10:32:53.550 に答える
0
$('tr').each(function() {
  var $this = $(this),
      theId = $this.find('td').first().text();  
  $this.attr('id', theId);
});

数値IDはHTML5でのみ有効であることに注意してください

于 2013-03-26T10:30:58.580 に答える
0

でトラバースし.each()ます<tr>

$('tbody tr').each(function(){
   var txt = $.trim($('td:first',this).text());
   $(this).attr('id', txt);
});

フィドルをチェックアウト

于 2013-03-26T10:38:52.400 に答える