12
votes

Changer la valeur HREF en utilisant jQuery

Comment réécrire une valeur HREF, en utilisant jQuery?

J'ai des liens avec une ville par défaut xxx

si l'utilisateur entre une valeur dans une zone de texte #City Je veux remplacer Paris avec la valeur entrée par l'utilisateur.

jusqu'à présent, j'ai xxx


1 commentaires

Je recommanderais de faire cela avec des formulaires, car votre façon de le faire rend la fonction de recherche inutilisable sans JavaScript.


4 Réponses :


2
votes

Comme ceci: xxx

EDIT: a ajouté la chaîne de recherche


2 commentaires

Cela remplacera l'URL entière, pas seulement la valeur du paramètre de la ville .


Merci, je suis sûr que l'OP aurait compris cela.



16
votes
 $('a').attr("href", "/search/?what=parks&city=" + newCity);

0 commentaires

5
votes

Dès que la touche est publiée dans le champ de saisie #city , le href sera mis à jour. XXX


1 commentaires

Merci !! Bonne. Même si j'ai apporté des changements ... j'ai ajouté "OnKeyup" rappel sur "l'entrée". Quelque chose comme et dans cette fonction de rappel, j'ai ajouté le code. Merci !!



31
votes

étant donné que vous avez des valeurs uniques href code> (? Qu'est-ce que = Parks code> et ? Qu'est-ce que = Malls code>) Je suggérerais pas écrire un chemin dans le $. ATT () code> méthode; vous devriez avoir un appel à $. ATTR () code> pour chaque href code>, et qui deviendrait très redondant, très rapidement - sans parler difficile de gérer .

ci-dessous Je fais un appel à $. ATT () code> et en utilisant une fonction pour remplacer uniquement la partie & city = code> avec la nouvelle ville. La bonne chose à propos de cette méthode est que ces 5 lignes de code peuvent mettre à jour des centaines de liens sans détruire les valeurs code> href code> sur chaque lien. P>

'$1'+o.target.value.replace(/\s+/, '');


5 commentaires

Pourquoi utiliser des expressions régulières lorsque vous n'êtes pas obligé? cela ne serait-il pas techniquement plus lent et err ... Clunkier?


@Andyl Parce que demain l'URL peut ne pas être / rechercher /? Quoi = Pièces & City = Paris , mais / Search /? Quand = Paris & Code = Paris ou une autre variante . Vous ne devriez pas avoir à réécrire votre JavaScript pour répondre à ces types de changements; Ce serait beaucoup trop lourd, de mon avis sincère.


@ryaz J'ai réduit un peu pour réduire la quantité de code impliquée.


@Andyl Une autre chose à considérer est si le fait que l'utilisateur dispose de deux liens, avec deux structures d'URL différentes. On commence avec ? Qu'est-ce que = Parks pendant l'autre ? Qu'est-ce que = centres commerciaux . Ma méthode ci-dessus se concentrera uniquement sur le & city = [a-z] partie, laissant le reste comme il devait commencer par. Si nous écrasions tout le chemin, nous écrasons ? Qu'est-ce que = Parks avec ? Qu'est-ce que = centres commerciaux .


Sachez également que cette expression régulière laisse quelque chose à souhaiter. Il n'y a pas de support pour les espaces, les codages d'espace, les traits d'union, les tirets ou tout autre caractère spécial (ou codages de caractères spéciaux) qui sont autorisés comme paramètres dans les URL.