/ / Evaluer dans JQuery - javascript, jQuery

Évaluer dans JQuery - javascript, jQuery

Je me demandais simplement s'il était possible de convertir ce qui suit en une instruction IF en Javascript:

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

Exemple:

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");

Réponses:

3 pour la réponse № 1

Vous pouvez simplement l'aborder de cette façon:

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

Ici, je commence par supposer que non .navheaders avoir des liens, puis aller appliquer le linksbelow classe comme tu le faisais avant, et puis (voici le bit important) trouver() approprié .navheader enfants et corrigez-les en supprimant le (maintenant incorrect) Nolinksbelow classe et en ajoutant le correct linksbelow classe.


1 pour la réponse № 2

Voici ce que je devine de ce que vous pourriez éventuellement vouloir:

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 pour la réponse № 3

Vous ne savez pas vraiment ce que vous demandez, vous avez simplement besoin de la syntaxe de if / else en js? Essaye ça


0 pour la réponse № 4

Vous êtes conscient que jQuery est javascript, n'est-ce pas?

Implicitement, la réponse à votre question est donc "oui", mais vous vous retrouvez avec un peu de javascript qui ressemble étrangement à une petite partie de jquery ...


0 pour la réponse № 5

Je ne suis pas en train de suivre le lien entre votre première ligne de code et l '"Exemple". Pouvez-vous décrire l'effet que vous essayez d'obtenir avec des mots?

Votre première ligne se lit comme suit:

(1) Ajouter la classe linksbelow à tous les tr éléments qui contiennent un table.navitem immédiatement après tr qui contient un table.navheader dans .Nav table

Et l'exemple se lit comme suit:

(2) Ajouter une classe à tout élément qui correspond .Nav table .navheader. Le nom de classe dépend du résultat de (1). Si l'opération dans (1) a réussi (ce qui signifie probablement si elle correspond à un élément), le nom de la classe doit être linksbelow, autrement Nolinksbelow.