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

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

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

復制代碼 代碼如下:
<!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,第二個設(shè)置tbody的innerHTML。

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

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

復制代碼 代碼如下:
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里如果要設(shè)置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.

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

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

主站蜘蛛池模板: 日本女人水多 | 精品国产一区二区三区久久影院 | 国内精品久久久久久西瓜色吧 | 亚洲电影成人 成人影院 | 999久久久无码国产精蜜柚 | 古风一女N男到处做高H | 最新国产三级在线不卡视频 | 国产 亚洲 另类 欧美 在线 | 久久国产精品萌白酱免费 | 疯狂做受XXXX高潮欧美日本 | 免费观看99热只有精品 | 亚洲一区综合图区 | www免费看.男人的天堂 | 天美传媒在线观看完整高清 | 最近中文字幕2019免费版日本 | 99久久国内精品成人免费 | 污污内射在线观看一区二区少妇 | 精品久久久久中文字幕 | 亚洲精品成人AV在线观看爽翻 | 我与恶魔的h生活ova | 亚洲精品久久无码AV片银杏 | 中文字幕爆乳JULIA女教师 | 中国老太60old mantv | 99亚洲精品| 国产色精品久久人妻无码 | 日本漫画无彩翼漫画 | 国产伦子沙发午休系列资源曝光 | 韩日午夜在线资源一区二区 | 亚洲三级视频在线观看 | 亚洲AV午夜精品麻豆AV | 国产精品亚欧美一区二区三区 | 免费在线伦理片 | 99久久国语露脸精品国产 | 亚瑟天堂久久一区二区影院 | 久久受www免费人成_看片中文 | 中国毛片网| 粉嫩AV国产一区二区福利姬 | 杨幂被视频在线观看 | 国产精品JIZZ在线观看A片 | 国产精品人妻在线观看 | 日韩欧无码一区二区三区免费不卡 |