J'ai une liste non ordonnée comme ceci: ce dont j'ai besoin, c'est de modifier la couleur de la bordure gauche de l'ID "trois" si ID "deux 'est cliqué. Je sais que je peux faire quelque chose comme ceci: p> et ainsi de suite pour chacun, mais la jQuery devient très longue lorsque j'ai une longue liste d'éléments de liste. Y a-t-il une façon plus concise de faire cela? Tout ce que j'ai vu en ligne est pour les sélecteurs de frère de soeur, mais depuis que chaque J'ai également besoin d'avoir le Merci pour votre aide! P> P> code> n'est pas un frère de frère de l'autre, je n'arrive pas à comprendre comment la cibler. P> code> à l'intérieur du
3 Réponses :
Vous pouvez utiliser la méthode JQuery suivante () code> ( https: // API .jQuery.com / Suivant / ) En combinaison avec le parent () code> ( https://apl.jquery.com/parent/ ) méthode p>
$ (e.target) .parent (). Suivant ()
Cela n'a pas semblé travailler pour moi. Je voulais tellement ça!
Vous devrez peut-être utiliser le plus proche ('li') code> au lieu de parent () code> ici. Il est possible que l'élément code>.
Peut-être que c'est le '$ (ceci)' que vous passez l'élément sous forme de paramètre dans la fonction, essayez le code modifié.
Vous pouvez utiliser https://apl.jquerery.com/next/ p> EDIT: Si vous souhaitez que le suivant () code> comme ceci. Il reçoit le prochain frère de frère de l'élément sélectionné. a code> Pour avoir la classe code> gauche code>, vous pouvez utiliser le plus proche code>, suivant code> et Rechercher code> pour cibler le prochain A code>. p> le plus proche code> Obtenez-moi le premier élément correspondant au li code > cliqué. Suivant code> Le li code> qui est juste suivant, puis trouver code> pour obtenir l'élément a code> à l'intérieur du li .<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li><a class="foo" id="one">some text</a></li>
<li><a class="foo" id="two">some text</a></li>
<li><a class="foo" id="three">some text</a></li>
</ul>
J'ai besoin du code> pour recevoir la classe et modifier la bordure pas le
@ Jthunter24 OK, j'ai changé ma solution
C'est bizarre, je cible tout un élément avec $ ('a'). Removeclass ("bordure gauche")
J'ai eu une faute d'orthographe à ma fin. Vous étiez parti tout le long!
@ Jthunter24 ok parfait :)
AS OP autorisé pour PURE JavaScript à utiliser, voici ici A travaillant (si long de) JS SNIPPET:
.leftBorder {
border-left : 2px solid red;
}
Que se passera-t-il si vous cliquez sur
ID code> un ou trois?Quelle est la logique sous-jacente de changer la bordure gauche de l'ID "trois" lorsque "deux" est cliqué?
@brk Si vous cliquez sur ID une, le bord gauche de l'identifiant doit changer de couleur.
@ jo8691 C'est une spécification de conception que le client a demandé. Ils veulent un menu de navigation fou.
@ Jthunter24 sa non claire,
la bordure gauche de l'ID devrait changer de couleur. Code> Vous vouliez dire à la gauche bordure de l'identifiant suivant?@brk il dit
bordure gauche de l'ID 3 code> mais oui j'ai besoin de la bordure gauche de l'identifiant suivant pour changer de couleur