我有一个共享点日历,我想根据它们包含的注册号码(它用于学校的小巴)对不同的块进行颜色处理
如果a.ms-cal-tweekitem包含“EF04 WTR”,如何设置.ms-cal-eworkday的背景颜色
我需要在js / jquery中这样做,因为我没有编辑aspx(理事会政治)的能力
每个条目都是这样的。
<td class="ms-cal-eworkday" rowspan="6">
<table cellpadding="0" cellspacing="0" border="0" class="ms-cal-tweekitem" dir="">
<tbody><tr>
<td valign="top" href="/schools/ecclesfield/newdemosite/minibus-booking/Lists/Minibus/DispForm.aspx?ID=3" onclick="GoToLink(this);return false;" target="_self">
<div>
<img src="/_layouts/images/blank.gif" width="50" height="1" alt=""><br>
<img src="/_layouts/images/recursml.gif" class="ms-cal-hidden" alt="" align="absmiddle">
<a onfocus="OnLink(this)" class="ms-cal-dayitem" href="/schools/ecclesfield/newdemosite/minibus-booking/Lists/Minibus/DispForm.aspx?ID=3" onclick="GoToLink(this);return false;" target="_self" tabindex="5">
<nobr>03:00 PM</nobr>
<br>
<b>test2</b>
<br>
EF04 WTR
</a>
</div>
</td>
</tr>
</tbody></table>
</td>
我知道代码有点乱,这就是sharepoint的工作方式:(
提前致谢。
路易斯
答案 0 :(得分:1)
显然要更改颜色以适应,但这会为包含td.ms-cal-eworkday
且文字为a.ms-cal-dayitem
的任何EF04 WTR
设置背景为红色...
$("a.ms-cal-dayitem").filter(function() {
return $(this).text().indexOf("EF04 WTR") != -1;
}).closest("td.ms-cal-eworkday").css("background-color", "red");
filter()
表示它只会返回符合条件的元素,在这种情况下,这些元素包含相关文本。
答案 1 :(得分:1)
一种方法是循环遍历表并检查每个单元格。
$(function(){
$('.ms-cal-dayitem').each(function(){
if( $(this).text().indexOf("EF04 WTR") != -1 ) {
$(this).closest('.ms-cal-eworkday').css("background-color","blue");
}
});
});
答案 2 :(得分:0)
在上面回答的同一行中,我对该方法的唯一更改是在css中创建类,然后使用jQuery添加或删除类,但只是一个细节