jQuery / Javascript用%20 </space>替换锚链接中的<space>

时间:2009-05-12 17:04:09

标签: javascript jquery html replace

我是jQuery的新手,我正在尝试编写一些代码来浏览页面并重写锚链接href属性,以便删除空格并替换为%20。

到目前为止,我有:

$(".row a").each(function(){
  $(this).attr("href").replace(/\s/g,"%20");
});

我尝试了一些没有运气的变种。

7 个答案:

答案 0 :(得分:20)

您的方法是正确的,但是一旦更换它就忘记设置新值。试试这个:

$(".row a").each( function() {
   this.href = this.href.replace(/\s/g,"%20");
});

答案 1 :(得分:20)

您最好使用原生javascript encodeURI功能。

$(".row a").each(function(){
  $(this).attr( 'href', encodeURI( $(this).attr("href") ) );
});

答案 2 :(得分:3)

您必须在代码中设置属性值(attr(key, value)),只读取其值:

$(".row a").each(function(){
  $(this).attr('href', $(this).attr("href").replace(/\s/g,"%20"));
});

答案 3 :(得分:1)

@Naresh 是的,有办法,见下面的例子:

对编码后的URI进行解码:


<script type="text/javascript">

var uri="my test.asp?name=ståle&car=saab";
document.write(encodeURI(uri)+ "<br />");
document.write(decodeURI(uri));

</script>  

上面代码的输出将是:


my%20test.asp?name=st%C3%A5le&car=saab
my test.asp?name=ståle&car=saab

有关详细信息,请访问here

答案 4 :(得分:0)

您可以像这样替换""

$(document).ready(function () {
    $("#content a").each(function (){
        $(this).attr('href', $(this).attr("href").replace("%20",""));
    });
});

答案 5 :(得分:0)

我知道这已经太晚了,但我发现unescape()方法也有用......

答案 6 :(得分:0)

在 ES2021 中使用 replaceAll()

 $(".row a").each( function() {
        this.href = this.href.replaceAll('',"%20");
    });