四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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)系我們修改或刪除,多謝。

主站蜘蛛池模板: 冬日舞蹈教程完整版| 电影白洁少妇完整版| 听风者电视剧演员表| 777精品| 露底| 香港之夜电视剧免费播放国语版| 焊缝外观质量检验标准| 猎魔人第三季 电视剧| 王心凌照片| 命运的逆转| 杨贵妃黄色片| 电影《天启》| 公司减资从1000万减到10万| 范冰冰激情| 珍爱如血泰剧全集在线观看| 暴雪电影| 净三业真言| 芦苇编剧| 我亲爱的简谱| 一闪一闪亮晶晶电影免费| 道德底线| 白事专用歌曲100首| 龚婉怡| 一个桃子的热量| 菲律宾电影毕业生代表| 七年级下册语文读读写写拼音全部| 女生被艹网站| 红色高棉电影| 山东教育电视台直播| 老江湖| 世间路| 电影《忌讳》完整版| 操范冰冰| 美丽丽人| 黄祖蓝| 宿松百姓论坛| 瑞贝卡·德·莫妮| 疑云密布 电影| douyin.com| 声色犬马 电影| 深夜影院一级毛片|