javascript - 使用 jQuery 更改 href 值

标签 javascript jquery

如何使用 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+/, '');

在线演示:http://jsbin.com/ohejez/

关于javascript - 使用 jQuery 更改 href 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6540106/

相关文章:

javascript - 如果 jQuery.show() 在上一个事件中使用,jQuery 不会隐藏 DIV

javascript - 为什么我在此函数定义中得到 “Error 25: Expected: ;”?

javascript - AJAX PHP变量来填充表单字段jquery

javascript - 使用 jQuery 的 attr() 编写 if 语句

javascript - 使用 jquery 多次对同一个 id 执行点击功能

javascript - Jquery 问题 : All My SQL Queries

javascript - 动态更新原型(prototype) chosen.js

javascript - 按键在 IE 中有效,但在 Firefox 中无效

javascript - ('afterChange' 上的光滑 slider )

javascript - 如何使多个选择结果/div 按照最近选择的顺序出现在顶部?