我想在元素属性中转义“>”和“<”,不幸的是我无法弄清楚。看起来默认情况下,在 IE outerHTML 中转义 & 字符,一旦我尝试转义“>”(将“>”替换为“amp+gt;”),作为“amp+gt;”一部分的 & 符号 再次逃脱。这是一个示例代码:
var div = '<div atr="test & and < and >"></div>';
var $el = $(div);
console.log("txt string: " + div);
console.log("$el outerHTML BEFORE escaping: " + $el[0].outerHTML);
var rgx = new RegExp(">", "g");
$el.attr("atr", $el.attr("atr").replace(rgx, ">"));
console.log("$el outerHTML AFTER escaping: " + $el[0].outerHTML);
这是此代码的输出:
txt string: <div atr="test & and < and >"></div>
$el outerHTML BEFORE escaping: <div atr="test & and < and >"></div>
$el outerHTML AFTER escaping: <div atr="test & and < and &gt;"></div>
正如人们所看到的那样,作为更大的一部分的&符号然后被转义再次被转义。基本上我需要的是:
<div atr="test & and < and >"></div>
请让我知道这里可能缺少什么以及如何解决这个问题?
谢谢你。