innerHTML與jquery里的html()區別介紹


我原本一直以為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。

今天在這個基礎上加上了一個后加載廣告的方法:

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<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="http://files.jb51.net/image/kongbao_370.gif" width=370 height=60 /></a>' ;
doad(logo_m, 'logo_m' );
</script>

百度管家自帶的后加載廣告的代碼,基於jquery

?

1
2
3
4
5
6
<div id= "tonglanbd" ></div>
<script type= "text/javascript" >
$.getScript( "http://cbjs.baidu.com/js/m.js" , function () {
BAIDU_CLB_fillSlotAsync( "廣告id,不能帶u" , "tonglanbd" );
});
</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM