web-dev-qa-db-fra.com

jQuery trouver une balise d'ancrage avec href exact

J'utilise le code suivant pour trouver des balises d'ancrage avec une URL href correspondante. Actuellement, il renverra des ancres reliant à l'URL demandée, par exemple. /images ET tous les liens vers les sous-dossiers de cette URL, par exemple. /images/recent. J'aimerais qu'il ne renvoie le premier que si je demande seulement /images.

$menuChildren = $menuChildren.has('a[href^="'+relativeUrl+'"],a[href^="/'+relativeUrl+'"],a[href^="'+url+'"]');
24
jetlej

Vous utilisez ^=, le Sélecteur de début d'attribut avec . Comme son nom l'indique, il correspond aux attributs dont les valeurs commencent par la chaîne de correspondance. Utilisez plutôt =, le sélecteur d'égalité d'attribut qui nécessite une correspondance exacte:

$menuChildren = $menuChildren.has('a[href="'+url+'"]');
26
meagar

Si vous souhaitez faire correspondre le href exactement, utilisez le [href=...] version

$menuChildren = $('a[href="' + relativeUrl + '"]');
13
JaredPar