问题描述
|
我正在选择一个特定表的单元格。
某些单元格具有\“ testOff \”类,如果存在该类,我将尝试将表行更改为其他颜色。
这是我到目前为止的内容:
$(\"table#customersTable td.testOff\").each(function(){
$(this).closest(\"tr\").css(\"background-color\",\"#F6CCDA\");
});
我必须缺少一些东西,因为它没有显示任何单元格的背景色。
有人看到我选择的方式有错误吗?
解决方法
您可以使用类似:
$(\'td.testOff\').closest(\'tr\').addClass(\'highlightColour\');
CSS:
.highlight,.highlight td /* this part\'s important,and ensures that the \'highlight\' colour is seen in the td elements */
{
background-color: #ffa;
}
JS Fiddle演示。
顺便说一句:您不需要ѭ3,因为选择器将返回并已处理元素数组。
参考文献:
each()
closest()
。
addClass()
。
,您可以使用:has选择器:
$(\'#customersTable tr:has(td.testOff)\').css(\'background-color\',\'#f6ccda\');
,$(\'#customersTable td.testOff\').closest(\'tr\').addClass(\'highlightColour\').css(\"background-color\",\"#F6CCDA\");
工作演示
,$(\"td.testOff\").parent().children().css(\"background-color\",\"#F6CCDA\");
根据我之前的问题,以防万一它是td
单元格本身,您需要定位以覆盖先前的设置
就像我在评论中提到的那样,siblings()
只会选择.testOff
两侧的单元格-这会找到其父级tr
的所有子级