如何使用jQuery重写href参数?
我有一个默认城市的链接
<a href="/search/?what=parks&city=Paris">parks</a> <a href="/search/?what=malls&city=Paris">malls</a>
如果用户在#city文本框中输入一个值,我想用用户输入的值替换Paris.
到目前为止我有
var newCity = $("#city").val();
解决方法
鉴于您有独特的href值(?what = parks,?what = malls),我建议不要在$.attr()方法中写入路径;您将需要为每个唯一的href调用$.attr(),并且会非常快速地变得非常冗余 – 更不用说管理难度了.
下面我正在调用$.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+/,'');