Dado que tiene href
valores únicos (?what=parks
y ?what=malls
) Me gustaría sugerir no escribir una ruta de acceso en el método $.attr()
; tendrías que tener una llamada al $.attr()
para cada href
único, y eso sería muy redundante, muy rápido, por no mencionar difícil de gestionar.
A continuación, estoy haciendo una llamada al $.attr()
y utilizando una función para reemplazar solo la parte &city=
con la nueva ciudad. Lo bueno de este método es que estas 5 líneas de código pueden actualizar cientos de enlaces sin destruir el resto de los valores href
en cada enlace.
$("#city").change(function(o){
$("a.malls").attr('href', function(i,a){
return a.replace(/(city=)[a-z]+/ig, '$1'+o.target.value);
});
});
Una cosa que es posible que desee tener en cuenta serían los espacios y la carcasa. Se podría convertir todo a minúsculas utilizando el método de JavaScript .toLowerCase()
, y puede reemplazar los espacios con otra llamada a .replace()
como he abajo:
'$1'+o.target.value.replace(/\s+/, '');
Demo Online: http://jsbin.com/ohejez/
Yo recomendaría hacer esto con formularios, porque la forma en que lo hace ahora hace que su función de búsqueda no se pueda usar sin javascript. – Kokos