Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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 如何使用jquery突出显示基于th文本的表列?_Javascript_Jquery_Html_Jquery Selectors - Fatal编程技术网

Javascript 如何使用jquery突出显示基于th文本的表列?

Javascript 如何使用jquery突出显示基于th文本的表列?,javascript,jquery,html,jquery-selectors,Javascript,Jquery,Html,Jquery Selectors,假设我有下表: 忽略 突出 忽略 是的 是的 是的 是的 是的 是的 我想突出显示所有突出显示列。如何基于标题文本进行此操作 我意识到可以通过选择第n个孩子来实现这一点,但未来如何证明它不受可能的列顺序变化的影响 $('body > table > tbody > tr > td:nth-child(2)').css('background-color', 'pink'); 您需要获取th的索引,该索引具有突出显示文本。所以使用选择器来选择它,然后使用来查找它的索引

假设我有下表:


忽略
突出
忽略
是的
是的
是的
是的
是的
是的
我想突出显示所有突出显示列。如何基于标题文本进行此操作

我意识到可以通过选择第n个孩子来实现这一点,但未来如何证明它不受可能的列顺序变化的影响

$('body > table > tbody > tr > td:nth-child(2)').css('background-color', 'pink');

您需要获取
th
的索引,该索引具有突出显示文本。所以使用选择器来选择它,然后使用来查找它的索引。最后,选择每个
th
td
的索引等于查找到的索引

请注意,
:contains()
选择器select还包含不需要的文本,如突出显示的
和突出显示的
文本。如果表格文本不是常量,请使用

var i=$(“表th:contains('Highlight')”).index();
$(“表tr th,表tr td”).filter(函数(){
返回$(this).index()==i;
}).css(“背景”、“粉色”)

忽略
突出
忽略
是的
是的
是的
是的
是的
是的

由于指定的列名不会更改,因此可以使用jQuery.contains:

$( "body > table > tbody > tr > td:contains('Highlight')" ).css('background-color', 'pink');

需要在多个表格中突出显示:最终解决方案

$("th:contains('Highlight')").each(function() {
    $(this).closest('table').find('td:nth-child(' + ($(this).index() + 1) +')').css('background-color', 'pink');
});

如果没有特定的类,我想它不可能是“未来的证明”列名保证不会更改Graficode它不是
tbody
td
包含
突出显示的
我喜欢这个解决方案,但它需要获取标题索引,并将其用作
td
:第n个子
选择器。