innerHTML与jquery里的html()区别?


innerHTML与jquery里的html()区别?

● html()可以设置tbody、tr这些只读标签,而innerHTML在低版本IE下不行;

jQuery的html()做了些容错处理,原生的Dom API innerHTML有些元素是不支持的,比如table tr等元素,IE下tbody、tr这些的innerHTML都是只读的,不允许写入,而在其他浏览器下则没问题。

jquery里是用了try,catch来检测,如果报错则在catch里重新调用this.empty().append(value),是通过append来添加字符串的。

(相关课程推荐:jQuery教程

● html()设置的script脚本会执行,innerHTML设置的script脚本不会执行。

因为jQuery 会把强行让参数字符串中的script 标签生效(方式是create and replace),而.innerHTML赋值则不会。

$('#app').html('<script>alert(1)</script>')  // 会弹出警告框
$('#app')[0].innerHTML = '<script>alert(1)</script>' // 不会弹出警告框
      // ↑使用[0]将jquery对象转为dom对象,只有dom对象才有innerHTML方法,jQuery没有。

本文来自jQuery答疑栏目,欢迎学习!

以上就是innerHTML与jquery里的html()区别?的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » jQuery 答疑