Biorąc masz unikalne href
wartości (?what=parks
i ?what=malls
) Proponuję nie pisanie ścieżkę do metody $.attr()
; musielibyśmy mieć jedno połączenie z $.attr()
dla każdego unikalnego href
, a to byłoby bardzo nadmiarowe, bardzo szybko - nie wspominając już o trudnym zarządzaniu.
Poniżej wykonuję jedno połączenie z numerem $.attr()
i za pomocą funkcji zastępowania tylko części &city=
nowym miastem. Dobrą rzeczą w tej metodzie jest to, że te 5 linii kodu może aktualizować setki linków bez niszczenia reszty wartości href
na każdym łączu.
$("#city").change(function(o){
$("a.malls").attr('href', function(i,a){
return a.replace(/(city=)[a-z]+/ig, '$1'+o.target.value);
});
});
Jedno warto zwrócić uwagę na byłaby przestrzenie i obudowa. Można konwertować wszystko małymi literami przy użyciu metody .toLowerCase()
JavaScript i można zastąpić spacje z innego wywołania .replace()
jak mam na dole:
'$1'+o.target.value.replace(/\s+/, '');
Demo online: http://jsbin.com/ohejez/
Polecam ten sposób z formularzami, ponieważ sposób, w jaki robisz to teraz sprawia, że twoja funkcja wyszukiwania jest bezużyteczna bez javascript. – Kokos