JQuery循环表获取ID并更改特定列中的值

时间:2013-06-10 15:33:21

标签: javascript jquery performance html-table

我有一个2-3页的页面。在这些表格中,我想更改位于<thead>的特定列的文本以及每个<td>行中的值,我希望从每一行获得id。< / p>

在性能方面,最快的方法是什么?

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 个答案:

答案 0 :(得分:0)

您可以通过.attr "id"上的$(this).attr("id");来获取元素的ID。

答案 1 :(得分:0)

在jquery中,获取任何元素的最佳方法是给它一个ID,然后引用它。

我会以相反的方式构造它 - 给表元素提供有意义的ID,然后将我想要检索的信息放在它们的类属性中。

<tr id="ms-itmHover..." class="2,2,0">

然后按如下方式检索它:$('#ms-itmHover...').attr('class');

答案 2 :(得分: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
    ...
});

答案 3 :(得分: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