如何使用jQuery对URL中的符号和进行编码
我将一些URL动态输出到一个div中,其中包含一个如何使用jQuery对URL中的符号和进行编码,jquery,html,urlencode,ampersand,Jquery,Html,Urlencode,Ampersand,我将一些URL动态输出到一个div中,其中包含一个&,如下所示: <div id="box"> <a href="http://domain.com/index.html&location=1">First URL</a> <a href="http://domain.com/index.html&location=2">Second URL</a> </div> 这将遍历文档中存在的所有
&
,如下所示:
<div id="box">
<a href="http://domain.com/index.html&location=1">First URL</a>
<a href="http://domain.com/index.html&location=2">Second URL</a>
</div>
这将遍历文档中存在的所有a
标记,并将href
属性中的所有特殊字符替换为html实体
这将遍历文档中存在的所有a
标记,并将href
属性中的所有特殊字符替换为html实体
您知道,大多数(如果不是所有)现代浏览器在解析DOM时会自动为您修复编码。您知道,大多数(如果不是所有)现代浏览器在解析DOM时会自动为您修复编码。
此
将引用窗口
对象,除非您使用例如每个
创建一个闭包。Firebug正在抛出一个类型错误:$(this).attr(“href”)是未定义的
,当您在上调用replace方法时。不过,任何现代浏览器在解析DOM时都会自动修复url编码。@Fabriciomatté是的,这是一个严重的错误,谢谢你指出,是的,即使我只是将+1作为另一个答案;)+感谢你花时间来解决这个问题。回答也很清楚=]
此
将引用窗口
对象,除非您使用例如每个
创建闭包。Firebug正在抛出一个类型错误:$(this).attr(“href”)是未定义的
,当您在上调用replace方法时。不过,任何现代浏览器在解析DOM时都会自动修复url编码。@Fabriciomatté是的,这是一个严重的错误,谢谢你指出,是的,即使我只是将+1作为另一个答案;)+感谢你花时间来解决这个问题。回答也很清楚=]
我将+1您的答案,因为它至少不会破坏页面中的javascript和链接。写得也很好。我将+1你的答案,因为它至少不会破坏页面中的javascript,也不会破坏链接。写得也很好。
<div id="box">
<a href="http://domain.com/index.html&location=1">First URL</a>
<a href="http://domain.com/index.html&location=2">Second URL</a>
</div>
$('#box a').each(function(){
$(this).attr('href', $(this).attr('href').replace('&','&'));
});
$('a').each(function(){
$(this).attr('href',htmlEncode($(this).attr('href')));
console.log($(this).attr('href'));
});
function htmlEncode(value){
return $('<div/>').text(value).html();
}
$('a').each(function(){
$(this).attr('href',$(this).attr('href').replace('&','&');
console.log($(this).attr('href'));
});