Ответ 1
Учитывая, что у вас есть уникальные значения href
(?what=parks
и ?what=malls
), я бы предложил не писать путь в метод $.attr()
; вам понадобится один вызов $.attr()
для каждого уникального href
, и это будет очень скудным, очень быстро - не говоря уже о трудном управлении.
Ниже я делаю один вызов $.attr()
и используя функцию для замены только части &city=
новым городом. Хорошая вещь об этом методе заключается в том, что эти 5 строк кода могут обновлять сотни ссылок, не разрушая остальные значения href
для каждой ссылки.
$("#city").change(function(o){
$("a.malls").attr('href', function(i,a){
return a.replace( /(city=)[a-z]+/ig, '$1'+o.target.value );
});
});
Одна вещь, которую вы, возможно, захотите посмотреть, это пробелы и обложка. Вы можете преобразовать все в нижний регистр с помощью метода .toLowerCase()
JavaScript, и вы можете заменить пробелы на другой вызов .replace()
, как я ниже:
'$1'+o.target.value.replace(/\s+/, '');
Онлайн-демонстрация: http://jsbin.com/ohejez/