innerHTML与jquery里的html()区别介绍
投稿:mdxy-dxy
我原本一直以为innerHTML和jquery里的html其实是完全一样的,jquery是多此一举了,直到我遇到一次问题
看个示例:
复制代码 代码如下:
var tbody=document.createElement('tbody');
tbody.innerHTML='<tr><td>IE下tbody的innerHTML是只读的</td></tr>'; //在IE下报错,目标对象错误
现在用jquery的html试试,
复制代码 代码如下:
$(tbody).html('<tr><td>IE下tbody的innerHTML是只读的</td></tr>');
发现IE下用jquery能正确显示了,没任何问题。
后来查阅资料才知道,原来IE下tbody、tr这些的innerHTML都是只读的,不允许写入,而在其他浏览器下则没问题。
而jquery里是用了try,catch来检测,如果报错则在catch里重新调用this.empty().append(value),是通过append来添加字符串的。
jquery 如何使用innerHTML
$("#responsediv") 是个Jquery对象,它Val()是对Value属性赋值对它无意义,Jquery没有innerHTML这个属性,应该这样写$("#responsediv")[0].innerHTML=msg 就可以获得这个Dom对象使用innerHTML。
今天在这个基础上加上了一个后加载广告的方法:
代码如下:
<div id="logo_m"></div> <script> function doad(datastr,id){ //getid(id).innerHTML = datastr; 这个是原生js的写法 $("#"+id).html(datastr); //这个是jquery写法 } /* 上面的都是直接的字符串写入,不能是js代码 下面的代码利用的是jquery的append加载google广告不错,百度的好像不能用。后加载百度的可以是用百度管家自带的函数。 */ function doad2(datastr,id){ $("#"+id).append(datastr); } var logo_m='<a href="http://www.danhw.com/" target="_blank"><img src="//img.jbzj.com/image/kongbao_370.gif" width=370 height=60 /></a>'; doad(logo_m,'logo_m'); </script>
百度管家自带的后加载广告的代码,基于jquery
<div id="tonglanbd"></div> <script type="text/javascript"> $.getScript("http://cbjs.baidu.com/js/m.js", function() { BAIDU_CLB_fillSlotAsync("广告id,不能带u","tonglanbd"); }); </script>
您可能感兴趣的文章:
- javascript innerHTML、outerHTML、innerText、outerText的区别
- innerhtml用法 innertext用法 以及innerHTML与innertext的区别
- IE6-IE9不支持table.innerHTML的解决方法分享
- 放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
- js innerHTML 改变div内容的方法
- 调用innerHTML之后onclick失效问题的解决方法
- IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
- js使用for循环与innerHTML获取选中tr下td值
- innerHTML动态添加html代码和脚本兼容多个浏览器
- innerHTML中标签可以换行的方法汇总