Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript迭代带有表th标题的表列?_Javascript_Jquery - Fatal编程技术网

如何使用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());