选择器 – 在jQuery中选择页面上的所有表

假设我在嵌入式div中的各个级别的页面上有多个表(没有ID或名称)。 我的选择器是什么(如果可能的话)选择所有表而不管它在页面上的位置,并根据第一行中第一个单元格的内容迭代或过滤表格?

您只需使用$('table')作为选择器即可。

然后,如果在过滤结果时需要更精细的控制,则可以使用现有的filter,例如“ :contains ”或“ :has ”,或.filter()函数。 例如,

 $('table:has(td > span)') 

要么

 $('table').filter(function(index){ return $(this).html() == "something"; }); 

尝试…

 $("table").each(function(){ var curTable = $(this); var cell = $(this).find("tr:first td:first"); if ($(cell).text() == "some text"){ } }); 

或者你可以通过$(cell).html()检查if子句中第一个单元格的html

选择所有表格并不简单:

 $("table") 

添加filter

 $("table:has(td:first:contains('mytext'))") 

这将选择所有表:

 $("table") 

这将选择每个表的第一行的第一个TD单元:

 $("table tr:first td:first") 

你可以通过使用jQuery('table')获得每个表。 表格是在各种级别中还是嵌入在div中或者不会发生变化。

要做额外的过滤:

 jQuery('table').filter( function() { ... } ); 

传入函数会将表元素映射this元素,您需要返回true以将其保留在集合中,或者返回false以丢弃它。

  $('table').each(function(){ $(this).find('tr :first')... }); 

如果您想查看每个表的第一行中的第一个单元格,您可以使用:

$("table tr:first td:first").each(function() { var html = this.innerHTML; /* Iterative logic here */ });

您应该尝试使用$('table tr:first td:first:containts("whatever")')来获取具有特定内容的第一行的第一个单元格。