0

2〜3個のテーブルを含むページがあります。これらのテーブルでは、特定の列のテキストと<thead>各行の値を変更したいと考えており、各行<td>から取得したいと考えていidます。

これを実行する最速の方法は何ですか?

HTML

テーブル レイアウト:

<table class="ms-viewtable">
   <thead id="xxx">
      <tr class ="ms-viewheadertr">
         <th>
         <th>
   <tbody>
      <tr class="ms-itmHover..." id="2,1,0">
         <td>
         <td>
      <tr class="ms-itmHover..." id="2,2,0">
         <td>
         <td>
</table>

JavaScript

私が始めたスクリプト:

$('.ms-listviewtable').each(function () {
   var table = $(this);

   $table.find('tr > th').each(function () {
      //Code here
   });

   $table.find('tr > td').each(function () {
      //Code here
   });

どうすればIDを取得できますか? これは私がやりたいことをするためのより良い方法ですか?

4

4 に答える 4

0

すべてのテーブルを調べて、すべての行を収集し、必要に応じてそれらの識別子を見つけます。

$('table.ms-viewtable').each(function(){
    $(this).find('tr').each(function(){
        var cells = $(this).children(); //all cells (ths or tds)
        if (this.parentNode.nodeName == 'THEAD') {
            cells.eq(num).html('header row '+this.parentNode.id);
        } else { // in "TBODY"
            cells.eq(num).html('body row '+this.id);
        }
    });
});

jsfiddle

于 2013-06-10T16:12:24.597 に答える
0

次のように、テーブルの行から関連付けられた ID に「マッピング」することで、ID を取得できます。

var ids = $table.find('tbody > tr').map(function() {
    return this.id;
}).get();

.cellsテーブル行のプロパティを使用して、個々のセルにアクセスできます。

$table.each('tbody > tr', function() {
    var cell = this.cells[i];   // where 'i' is desired column number
    ...
});
于 2013-06-10T15:58:46.373 に答える