我是jQuery的新手,我正在尝试编写一些代码来浏览页面并重写锚链接href属性,以便删除空格并替换为%20。
到目前为止,我有:$(".row a").each(function(){
$(this).attr("href").replace(/\s/g,"%20");
});
我尝试了一些没有运气的变种。
答案 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");
});