嵌套

时间:2017-02-17 12:00:38

标签: jquery sharepoint-2013 conditional-formatting

我正在尝试使用jquery在SharePoint列表中进行条件格式化。我遇到的问题是SharePoint在SharePoint页面中放置代码时添加了一堆垃圾。我试图在表格中有条件地突出某些带有某些文字的单元格。红色=红色背景,绿色=绿色背景。

问题我对我编码的方式有问题,因为我的表被包裹在另一个表中(我无法控制)并且我正在寻找td中的文本,父td得到风格也。我只想用特定的td来设置文本样式。

我有一个代码显示我已完成的工作:http://codepen.io/Gregc72/pen/NdmoXj

HTML

<table>
<tr>
  <td>
<table>    
<tr><td>Test 1</td><td>Red</td></tr>
<tr><td>Test 2</td><td>Green</td></tr>    
</table>
</tr></td><table>

CSS

.greenBg {
    background: green;
}
.redBg {
    background: red;
}

脚本

$("td:contains('Green')").addClass('greenBg');
$("td:contains('Red')").addClass('redBg');

我不知道我是否可以不同地格式化我的css选择器来实现这一点,或者我是否必须使用某种循环函数。我确定答案很简单,我只是忽略它。

2 个答案:

答案 0 :(得分:3)

使用filter()函数

这可能是一个好主意

PEN

$("td").filter(
     function (index) { return $(this).text() == "Red"; }
).addClass("redBg");

$("td").filter(
     function (index) { return $(this).text() == "Green"; }
).addClass("greenBg");

答案 1 :(得分:1)

如果这是你的修复结构,那么试试这个:

$("table tr td table tr td:contains('Green')").addClass('greenBg');
$("table tr td table tr td:contains('Red')").addClass('redBg');