0

我有一些 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>

有没有办法 - 使用 jQuery - 将每个实例&转换为等效的 HTML 实体,以便输出变成这个?

<div id="box">
    <a href="http://domain.com/index.html&amp;location=1">First URL</a> 
    <a href="http://domain.com/index.html&amp;location=2">Second URL</a>
</div>
4

2 回答 2

2
$('#box a').each(function(){
  $(this).attr('href', $(this).attr('href').replace('&','&amp;'));
  });
于 2012-07-26T01:18:56.913 回答
2

这将遍历a文档中存在的所有标签,并将属性中的所有特殊字符替换href为 html 实体

$('a').each(function(){
    $(this).attr('href',htmlEncode($(this).attr('href')));
    console.log($(this).attr('href'));
});


function htmlEncode(value){
  return $('<div/>').text(value).html();
}

工作演示


遍历所有a标签并仅替换 & 符号:

$('a').each(function(){
    $(this).attr('href',$(this).attr('href').replace('&','&amp;');
    console.log($(this).attr('href'));
});
于 2012-07-26T01:21:55.943 回答