2009-06-09 3 views
3

Я пытаюсь создать ячейки таблицы в таблице, основываясь на том, содержит ли символ символ | в URL-адресе или нет (не спрашивайте, имея дело с SharePoint).Ячейки таблицы стиля с использованием jQuery

Образец HTML;

<table> 
<tr> 
<td class="ms-cal-workitem"> 
<table> 
<tr> 
<td class="ms-cal-monthitem"> 
<a href="http://localhost:4657/1">Event 1</a> 
</td> 
</tr> 
</table> 
</td> 
</tr> 
<tr> 
<td class="ms-cal-workitem"> 
<table> 
<tr> 
<td class="ms-cal-monthitem"> 
<a href="http://localhost:4657/1|435348578-kfsd-sdfsf-sfsf-324ewwer">Event 2</a> 
</td> 
</tr> 
</table> 
</td> 
</tr> 
</table> 

В любой ячейке таблицы, с класса MS-кал-WorkItem, содержащий гиперссылку должны иметь цвет фона красный. Единственным исключением из этого являются любые ячейки таблицы с классом ms-cal-monthitem, содержащие гиперссылку с символом | в их собственности href.

Что у меня до сих пор;

 $(document).ready(function() { 
      $("td.ms-cal-workitem:has(a[href*='|'])").css("background-color", "#ffff99"); 
      $("td.ms-cal-workitem:has(a:not[href*='|'])").css("background-color", "#ffcc33"); 
     }); 
+0

В вашем сообщении вы говорите «ms-cal-monthitem», но в вашем коде у вас есть ms-cal-workitem - это специально? – Sampson

+0

@ Jonathan - так как их тег 'td' с именем класса ms-cal-workitem, который является родительским для всех тегов 'a', то это может быть специально – TStamper

+0

К сожалению, это опечатка. В тексте он должен сказать ms-cal-workitem. – 2009-06-09 15:33:52

ответ

2

Это похоже на работу.

$(document).ready(function() { 
     $("td.ms-cal-monthitem:has(a[href*='|'])").css("background-color", "#ffff99"); 
     $("td.ms-cal-monthitem:has(a[href]):not(:has(a[href*='|']))").css("background-color", "#ffcc33"); 
}); 
+0

Бог знает, как вы это поняли, но спасибо :) – 2009-06-09 15:42:49

+0

http://wiki.github.com/jeresig/sizzle :-) –

0

Если я могу задать глупый вопрос, почему бы не назначать классы при обработке на стороне сервера, а не делать это с помощью jquery? Это не меняется динамично, правильно?

+1

Существует только одно свойство для элементов календаря в календаре SharePoint, BackgroundColorClassName, но это используется только для всех дневных событий :( – 2009-06-09 15:31:59