Comment réécrire une valeur HREF, en utilisant jQuery?
J'ai des liens avec une ville par défaut p> si l'utilisateur entre une valeur dans une zone de texte #City Je veux remplacer Paris avec la valeur entrée par l'utilisateur. P> jusqu'à présent, j'ai p>
4 Réponses :
Comme ceci: EDIT: strong> a ajouté la chaîne de recherche p> p> p>
Cela remplacera l'URL entière, pas seulement la valeur du paramètre code> de la ville code>.
Merci, je suis sûr que l'OP aurait compris cela.
$('a').attr("href", "/search/?what=parks&city=" + newCity);
Dès que la touche est publiée dans le champ de saisie #city code>, le href code> sera mis à jour.
Merci !! Bonne. Même si j'ai apporté des changements ... j'ai ajouté "OnKeyup" rappel sur "l'entrée". Quelque chose comme
étant donné que vous avez des valeurs uniques ci-dessous Je fais un appel à 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 . $. 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+/, '');
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 Code>, mais / Search /? Quand = Paris & Code = Paris Code> 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 code> pendant l'autre ? Qu'est-ce que = centres commerciaux code>. Ma méthode ci-dessus se concentrera uniquement sur le & city = [a-z] code> partie, laissant le reste comme il devait commencer par. Si nous écrasions tout le chemin, nous écrasons ? Qu'est-ce que = Parks code> avec ? Qu'est-ce que = centres commerciaux code>.
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.
Je recommanderais de faire cela avec des formulaires, car votre façon de le faire rend la fonction de recherche inutilisable sans JavaScript.