我有一个2-3页的页面。在这些表格中,我想更改位于<thead>
的特定列的文本以及每个<td>
行中的值,我希望从每一行获得id
。< / p>
在性能方面,最快的方法是什么?
表格-布局:
<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>
我开始编写脚本:
$('.ms-listviewtable').each(function () {
var table = $(this);
$table.find('tr > th').each(function () {
//Code here
});
$table.find('tr > td').each(function () {
//Code here
});
我如何获得ID?这有更好的方法来做我想要的吗?
答案 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);
}
});
});