天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案

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

復(fù)制代碼 代碼如下:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <title>IE6-IE9中tbody的innerHTML不能復(fù)制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>

兩個(gè)按鈕,第一個(gè)獲取tbody的innerHTML,第二個(gè)設(shè)置tbody的innerHTML。

獲取時(shí)所有瀏覽器都彈出了tr的字符串,但設(shè)置時(shí)IE6-9不支持,而且報(bào)錯(cuò),如圖

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

復(fù)制代碼 代碼如下:
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)

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

復(fù)制代碼 代碼如下:
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)
}

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

當(dāng)然還有一個(gè)更精簡的版本,它直接采用replaceChild方法替換

復(fù)制代碼 代碼如下:
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.

HTML/CSS技術(shù)IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 艳妇臀荡乳欲伦岳TXT下载 | 欧美极品尿交 | 狠狠色狠狠色综合系列 | 乱码中字在线观看一二区 | 免费果冻传媒在线完整观看 | 国产亚洲精品久久久999密臂 | 18动漫在线观看 | 国产视频精品在线偷拍 | 成人无码在线超碰视频 | 99视频免费看 | 精品久久久麻豆国产精品 | 国产精品高潮呻吟AV久久96 | 受被攻做到腿发颤高h文 | 99日精品欧美国产 | 岛国片在线看 | 俄罗斯14一18处交 | 暖暖的视频完整视频免费韩国 | 国产精品久久久久久久久免费下载 | 美女动态图真人后进式 | 精品无码一区二区三区中文字幕 | 国产91无毒不卡在线观看 | 好男人好资源在线观看 | 印度12 13free | 免费人妻无码AV不卡在线 | 桃花在线视频观看免费 | 久久无码AV亚洲精品色午夜 | 最近的2019中文字幕HD | 亚洲精品无码国产爽快A片百度 | 香蕉精品国产自在现线拍 | 最新国产三级在线不卡视频 | 红色机尾快播 | 国产精品熟女人妻 | 亚洲视频成人 | 国产在线精彩视频 | 男人和女人一级黄色大片 | 亚洲日韩在线天堂一 | 国产电影午夜成年免费视频 | 男人大臿蕉香蕉大视频 | 黑人强伦姧人妻日韩那庞大的 | 精品国产乱码久久久久久免费流畅 | 坠落的丝袜美人妻 |