Используя jQuery, установите родительский элемент css в зависимости от состояния элемента нескольких дочерних элементов. - PullRequest
0 голосов
/ 14 августа 2010
<tr>
    <td class="cat" CategoryId="8">NoChange*: </td>
    <td><span class="itm" CategoryId="8">A</span></td>
</tr> 
<tr>
    <td class="cat" CategoryId="9">Row should be red*: </td>
    <td></td>
</tr> 
<tr>
    <td class="cat">Comments:</td>
    <td><span class="itm"></span></td>
</tr>​

Я хочу установить проверку для категории, в которой нет элементов. Для категории 8 с ним связано одно значение, следовательно, нет необходимости показывать требуемый, где, поскольку 9 не имеет какого-либо элемента, связанного с ним. Поэтому его цвет tr должен быть установлен на красный. Также комментарий следует полностью игнорировать, так как он не имеет никакой категории как таковой. Я пытаюсь установить его как

$("tr.cat~tr.itm").children(":not(:has(td))").css("color","red")

Ответы [ 2 ]

1 голос
/ 14 августа 2010

Это позволит выбрать :empty <td> элементов, которым предшествует <td class="cat">.

Затем он возвращается к элементу .prev() и меняет цвет.

Попробуйте: http://jsfiddle.net/4DN6Q/1/

$("td.cat + td:empty").prev('td.cat').css("color","red");
0 голосов
/ 14 августа 2010
...