中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案
來源:易賢網 閱讀:4261 次 日期:2014-08-10 17:21:04
溫馨提示:易賢網小編為您整理了“IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案”,方便廣大網友查閱!

IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值,重現代碼如下

代碼如下:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8"/>

<title>IE6-IE9中tbody的innerHTML不能復制bug</title>

</head>

<body style="height:3000px">

<table>

<tbody>

<tr><td>aaa</td></tr>

</tbody>

</table>

<p>

<button id="btn1">GET</button><button id="btn2">SET</button>

</p>

<script>

var tbody = document.getElementsByTagName('tbody')[0]

function setTbody() {

tbody.innerHTML = '<tr><td>bbb</td></tr>'

}

function getTbody() {

alert(tbody.innerHTML)

}

btn1.onclick = function() {

getTbody()

}

btn2.onclick = function() {

setTbody()

}

</script>

</body>

</html>

兩個按鈕,第一個獲取tbody的innerHTML,第二個設置tbody的innerHTML。

獲取時所有瀏覽器都彈出了tr的字符串,但設置時IE6-9不支持,而且報錯,如圖

圖片一

可以利用特性判斷來看瀏覽器是否支持tbody的innerHTML設值

var isupportTbodyInnerHTML = function () {

var table = document.createElement('table')

var tbody = document.createElement('tbody')

table.appendChild(tbody)

var boo = true

try{

tbody.innerHTML = '<tr></tr>'

} catch(e) {

boo = false

}

return boo

}()

alert(isupportTbodyInnerHTML)

對于IE6-IE9里如果要設置tbody的innerHTML,可以使用如下替代方法

代碼如下:

function setTBodyInnerHTML(tbody, html) {

var div = document.createElement('div')

div.innerHTML = '<table>' + html + '</table>'

while(tbody.firstChild) {

tbody.removeChild(tbody.firstChild)

}

tbody.appendChild(div.firstChild.firstChild)

}

用一個div來包含一個table,然后刪除tbody里的所有元素,最后給tbody添加div的第一個元素的第一個元素,即div>table>tr。

當然還有一個更精簡的版本,它直接采用replaceChild方法替換

代碼如下:

function setTBodyInnerHTML(tbody, html) {

var div = document.createElement('div')

div.innerHTML = '<table>' + html + '</table>'

tbody.parentNode.replaceChild(div.firstChild.firstChild, tbody)

}

從MSDN上記錄上看 col、colGroup、frameset、html、head、style、table、tfoot、tHead、title和tr的innerHTML都是只讀的(IE6-IE9)。

The innerHTML property is read-only on the col, colGroup, frameSet, html, head, style, table, tBody, tFoot, tHead, title, and tr objects.

You can change the value of the title element using the document.title property.

To change the contents of the table, tFoot, tHead, and tr elements, use the table object model described in Building Tables Dynamically. However, to change the content of a particular cell, you can use innerHTML.

更多信息請查看IT技術專欄

更多信息請查看網絡編程
下一篇:解密ASP源代碼
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
主站蜘蛛池模板: 察哈| 宿松县| 保定市| 札达县| 隆安县| 政和县| 伊宁县| 句容市| 奎屯市| 寿光市| 墨江| 大余县| 鄯善县| 新建县| 册亨县| 德州市| 郧西县| 日照市| 古蔺县| 东宁县| 四平市| 长兴县| 青州市| 扎兰屯市| 聂荣县| 大足县| 永泰县| 开化县| 江安县| 海晏县| 奉贤区| 壶关县| 灵川县| 昌江| 鹿泉市| 自贡市| 巴南区| 泗洪县| 东阿县| 龙游县| 阜宁县|