jQuery .has () élément différent cible

Je suis assez nouveau chez jQuery et j’aimerais aller mieux. J’ai essayé de trouver cet extrait de code:

$(document).ready(function(){ $("ul#result-list").has("div#boom")( function() { $("div.page-navigation").css("display", "none")); }); }); 

J’essaie de faire disparaître div.page-navigation si ul # result-list a div # boom. Pas de chance jusqu’à présent malgré des recherches sur le Web. Suis-je loin? Merci pour le hel

.has() renvoie les éléments dom correspondants, pas une valeur booléenne vraie ou fausse. Au lieu de cela, vérifiez la propriété length pour déterminer si div#boom existe dans #result-list .

Quelque chose comme ça:

 $(document).ready(function() { if ($("ul#result-list").has("div#boom").length) { $("div.page-navigation").hide(); } }); 

Essayez quelque chose comme ça:

 $(document).ready(function() { if($('ul#result-list:has(div#boom)').length > 0) { $('div.page-navigation').hide(); } } 

Ceci cachera la div de navigation de page s’il existe au moins un élément de la liste de résultats comportant un élément div de boom.

Le seul problème que je puisse voir, en réalité, est que vous n’enchaînez pas de méthodes:

 $(document).ready(function(){ $("ul#result-list").has("div#boom")( function() { $("div.page-navigation").css("display", "none")); }); }); 

Ce qui signifie qu’après .has() vous ouvrez une parenthèse qui n’est pas attachée à une méthode. Je suggérerais que vous devriez essayer d’utiliser une déclaration if plutôt que d’essayer d’enchaîner, dans ce cas. Je posterais mes pensées, mais @DNR et @Alex sont arrivés en premier.