例を見てみましょう:
var tbody=document.createElement('tbody');
tbody.innerHTML='
IE では tbody の innerHTML は読み取り専用です |
' //IE ではエラーが報告され、ターゲット オブジェクトが間違っています
次に、jquery の html、
を使用してみます。
$(tbody).html('
IE では tbody の innerHTML は読み取り専用です |
');
IEでjqueryを使用すると問題なく正しく表示できることがわかりました。
調べてみると、IEではtbodyとtrのinnerHTMLが読み取り専用で書き込みができないようですが、他のブラウザでは問題ありません。
jquery では、try と catch を使用してエラーが報告されると、catch で this.empty().append(value) が再度呼び出され、append によって文字列が追加されます。
jquery で innerHTML を使用する方法
$("#responsediv") は Jquery オブジェクトであり、その Value 属性への Val() の割り当ては無意味です。$("#responsediv")[0].innerHTML=msg と記述する必要があります。このように、innerHTML を使用してこの Dom オブジェクトを取得します。
本日、これに基づいて広告をポストロードする方法を追加しました:
コードは次のとおりです:
<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 に基づく、Baidu Butler 独自のポストロード広告用コード
<div id="tonglanbd"></div>
<script type="text/javascript">
$.getScript("http://cbjs.baidu.com/js/m.js", function() {
BAIDU_CLB_fillSlotAsync("广告id,不能带u","tonglanbd");
});
</script>
ログイン後にコピー