Оценить в Jquery - PullRequest
       37

Оценить в Jquery

0 голосов
/ 24 августа 2009

Просто интересно, возможно ли преобразовать следующее выражение IF в Javascript:

$('.Nav table tr:has(table.navheader) + tr:has(table.navitem)').addClass('linksbelow');

Пример:

IF $('.Nav table tr:has(table.navheader) + tr:has(table.navitem)').addClass('linksbelow'); = **TRUE** (
$('.Nav table .navheader').addClass('linksbelow');
)
**ELSE** (
$('.Nav table .navheader').addClass('Nolinksbelow');

Ответы [ 5 ]

3 голосов
/ 24 августа 2009

Вы можете просто подойти к этому так:

$('.Nav table .navheader').addClass('Nolinksbelow');
$('.Nav table tr:has(table.navheader) + tr:has(table.navitem)').addClass('linksbelow').find('.navheader').addClass('linksbelow').removeClass('Nolinksbelow');

Здесь я начинаю с предположения, что ни у .navheader s нет ссылок, затем применяю класс linksbelow, как вы делали раньше, а затем (вот важный бит) find () соответствующий .navheader детей и исправьте их, удалив (теперь неверный) класс Nolinksbelow и добавив правильный linksbelow класс.

1 голос
/ 24 августа 2009

Вот мое предположение о том, что вы могли бы хотеть:

var q = $('.Nav table tr:has(table.navheader) + tr:has(table.navitem)');
if (q.length) {
    q.addClass('linksbelow');
    $('.Nav table .navheader').addClass('linksbelow');
} else {
    $('.Nav table .navheader').addClass('Nolinksbelow');
}
0 голосов
/ 25 августа 2009

Я не понимаю, как ваша первая строка кода относится к «Примеру». Не могли бы вы описать эффект, которого вы пытаетесь достичь словами?

Ваша первая строка гласит:

(1) Добавьте класс linksbelow ко всем элементам tr, которые содержат table.navitem сразу после tr, который содержит table.navheader в .Nav table

И пример гласит:

(2) Добавьте класс к любому элементу, который соответствует .Nav table .navheader. Имя класса зависит от результата (1). Если операция в (1) завершилась успешно (вероятно, это означает, что она соответствует каким-либо элементам), тогда имя класса должно быть linksbelow, в противном случае Nolinksbelow.

0 голосов
/ 24 августа 2009

Вы знаете, что jquery - это javascript, не так ли?

Следовательно, ответ на ваш вопрос неявным образом - "да", но в итоге вы получаете немного javascript, который подозрительно похож на небольшую часть jquery ...

0 голосов
/ 24 августа 2009

Не совсем уверен, что вы спрашиваете, вам просто нужен синтаксис if / else в js? Попробуйте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...