为什么执行<script>
:
$('#jq_script').html("<script>$('#test').text('test');<\/script>");
但这不是吗?
document.getElementById('js_script').innerHTML = "<script>$('#test').text('test');<\/script>";
您可以在行动中看到它 here
来自jQuery的关于.html()的文档:
此方法使用浏览器的innerHTML属性。某些浏览器可能不会返回完全复制原始文档中HTML源的HTML。例如,如果属性值仅包含字母数字字符,则Internet Explorer有时会忽略引号。
答案 0 :(得分:9)
html
是一个jQuery函数。 innerHTML
是非标准(但受到良好支持)的属性。
如果查看代码,您会看到.html()
解析脚本,eval
解析脚本。
要在源中找到它:
查找html
声明:https://github.com/jquery/jquery/blob/1.11.0/src/manipulation.js#L564-604
看到.append
。 append
依次调用DomManip[ulate]
来解析和eval
脚本。
DomManip[ulate]
中的相关位:https://github.com/jquery/jquery/blob/1.11.0/src/manipulation.js#L684-709