如何使用javascript迭代带有表th标题的表列?
我的作用域中有表行对象。 我可以通过点击那一行上的链接得到它如何使用javascript迭代带有表th标题的表列?,javascript,jquery,Javascript,Jquery,我的作用域中有表行对象。 我可以通过点击那一行上的链接得到它 var tableRow = $(object).closest('tr'); 我需要的是逐行迭代这个表中的列 例如: th1 th2 th3 tr1 td td td tr2 td td td* 比方说,我有tr2在我的范围内,我需要到达th3下的细胞。当我迭代它的单元格时,我怎么知道单元格在th3之下 我想在不使用列索引的情况下使用它,而是使用列名。假设您的表的id是myTable,您可以执行以下操
var tableRow = $(object).closest('tr');
我需要的是逐行迭代这个表中的列
例如:
th1 th2 th3
tr1 td td td
tr2 td td td*
比方说,我有tr2在我的范围内,我需要到达th3下的细胞。当我迭代它的单元格时,我怎么知道单元格在th3之下
我想在不使用列索引的情况下使用它,而是使用列名。假设您的表的id是myTable,您可以执行以下操作:
$("#myTable td")
这将为您提供所有表格单元格,如果您对它们进行迭代,您将从单元格1扫描到单元格N
如果只需要,例如每行的第二个单元格,可以使用以下选择器:
$("#myTable tr td:nth-child(2)")
这将返回每行中的第2个单元格遍历行上下文的每个td,并使用.eq()和.index()获取该列的相应th。像下面这样的方法应该可以奏效 在本例中,我正在搜索一列,该列的th带有文本“two”
$('tr')。在('click',function()上{
查找($(此));
});
函数查找(tableRow){
var$table=tableRow.closest('table');
var query=“两个”;
var result=tableRow.find('td').filter(函数(){
返回$table.find('th').eq($(this.index()).html()==query;
});
警报(result.html());
}
一个
二
1.
2.
3.
4.
使用列索引有什么问题?使用索引比使用列名更可靠如果列名重复怎么办?另外,你能给我们看一下你的标记吗?不清楚您的表头是在
中,还是在
中的第一行。这是因为表是动态数据表,用户可以在运行时删除一些列。
var $table = tableRow.closest('table');
var query = "two";
var result = tableRow.find('td').filter(function(){
return $table.find('th').eq($(this).index()).html() === query;
});
console.log(result.html());