我正在尝试使用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选择器来实现这一点,或者我是否必须使用某种循环函数。我确定答案很简单,我只是忽略它。
答案 0 :(得分:3)
使用filter()
函数
$("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');