javascript - js 字符串转html标签
大家讲道理
大家讲道理 2017-04-10 17:20:55
[JavaScript讨论组]

遇到一个问题:var str = "<span>hk</span>",这是一段字符串,
获取放在网页上显示也是一段字符串:<span>hk</span>,此时的<span></span>不是标签
怎么才能让<span></span>在网页上以标签方式显示呢?
右击查看htmlelement的时候,变成这样了:
<span>hk</span>
百度了,但是没起效,请大神指点

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(6)
怪我咯

这个是你想要的:

var str = '<span>hk</span>';
var p = document.createElement('p');
p.innerHTML = str;
var span = p.childNodes[0];
var body = document.getElementsByTagName('body')[0];
body.appendChild(span);

原生方法。

怪我咯

在这个页面顶部的地方举个栗子吧比如:

var str1 = "<span>111</span>";
var str2 = "<span>222</span>";
var str3 = "<script>alert('333')</script>";

document.getElementById('sideBookmark').innerHTML = str1; //原生js写法

$('#sideBookmark').html(str2); //jq写法

不过一般情况下要注意防xss注入,所以要对一些字符转义。比如你可以定义个函数

function escapeChars(str) {
    str = str.replace(/&/g, '&amp;');
    str = str.replace(/</g, '&lt;');
    str = str.replace(/>/g, '&gt;');
    str = str.replace(/'/g, '&acute;');
    str = str.replace(/"/g, '&quot;');
    str = str.replace(/\|/g, '&brvbar;');
    return str;
}

$('#sideBookmark').html(escapeChars(str3));
天蓬老师

用html写入,直接上代码了

var str = "<span>hk</span>";
var parent = $('body');
parent.html(str);
高洛峰

document.body.innerHTML = '<span>hk</span>'

PHP中文网

要看源码,我怀疑是<>这些符号被转义了,你看起来是<实际上源码是实体符号。
所以,你需要先html....decode()一下。

怪我咯

改一下html结构?
比如

<pre>
<span> some word.. </span>
</pre>

这样?
不然就只能做转义了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号