0

我有一个共享点日历​​,我想根据它们包含的注册号对不同的块进行颜色编码(它用于学校的小巴)

如果 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 的工作原理:(

提前致谢。

刘易斯

4

3 回答 3

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()意味着它只会返回符合条件的元素,在这种情况下,它包含相关的文本。

于 2012-12-06T15:45:18.277 回答
1

一种方法是遍历表格并检查每个单元格。

$(function(){
    $('.ms-cal-dayitem').each(function(){
        if( $(this).text().indexOf("EF04 WTR") != -1 ) {
            $(this).closest('.ms-cal-eworkday').css("background-color","blue");
        }
    });
});
于 2012-12-06T15:47:03.050 回答
0

在上面回答的同一行中,我对方法的唯一更改是在 css 中创建类,然后使用 jQuery 添加或删除类,但只是一个细节

于 2012-12-06T16:44:47.130 回答