Với bạn phải độc đáo href
giá trị (?what=parks
, và ?what=malls
) Tôi xin đề nghị không viết một đường dẫn vào các phương pháp $.attr()
; bạn sẽ phải có một cuộc gọi đến $.attr()
cho mỗi href
duy nhất và điều đó sẽ phát triển rất thừa, rất nhanh chóng - chưa kể đến khó quản lý.
Dưới đây tôi đang thực hiện một cuộc gọi đến $.attr()
và sử dụng chức năng để chỉ thay thế phần &city=
với thành phố mới. Điều tốt về phương pháp này là 5 dòng mã này có thể cập nhật hàng trăm liên kết mà không phá hủy phần còn lại của giá trị href
trên mỗi liên kết.
$("#city").change(function(o){
$("a.malls").attr('href', function(i,a){
return a.replace(/(city=)[a-z]+/ig, '$1'+o.target.value);
});
});
Một điều bạn có thể muốn xem là không gian và vỏ. Bạn có thể chuyển đổi tất cả mọi thứ để chữ thường sử dụng phương pháp Javascript .toLowerCase()
, và bạn có thể thay thế không gian với một cuộc gọi đến .replace()
như tôi đã xuống dưới đây:
'$1'+o.target.value.replace(/\s+/, '');
Demo Online: http://jsbin.com/ohejez/
tôi sẽ khuyên bạn nên làm này với các biểu mẫu, bởi vì cách bạn đang làm nó bây giờ làm cho chức năng tìm kiếm của bạn không sử dụng được nếu không có javascript. – Kokos