是否有任何JS(非jquery)方法从跨度中获取URL(例如:<span id="h">http://x.com?d=d&x=x</span>
)
没有将&amp;'更改为&s
???
谢谢。
答案 0 :(得分:4)
document.getElementById("h").textContent.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
(替换调用是修剪前导和尾随空格,在您的情况下可能不需要这样做。)
答案 1 :(得分:3)
或者,您可以使用以下技巧解码HTML实体:
function htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes[0].nodeValue;
}
htmlDecode("<img src='myimage.jpg'>");
// returns "<img src='myimage.jpg'>"
答案 2 :(得分:1)
这是因为原始HTML代码无效,但仍然按照您的意图正确解析,但应按原样打印。 &
是HTML中的特殊字符,与<
非常相似,您应该使用相应的html实体对它们进行编码。
答案 3 :(得分:0)
如果您想要数据的文本表示,请从textNode获取.data
,而不是HTML元素的.innerHTML
。
var element = document.getElementById('h');
var textNode = element.firstChild;
var URI = textNode.data;
使用.innerHTML
将为您提供以HTML格式编码的数据(浏览器将更正您在原始标记中出现的错误)