原生JS动态创建表格 兼容ie789

ie中表格的样式兼容

 table{width:200px;margin:50px auto;text-align: center;border-color:#ccc;}
<table border="1"  cellpadding="0" cellspacing="0" >
    <thead>
    <tr>
        <th>年份</th>
        <th>否已完成</th>
    </tr>
    </thead>
    <tbody >
    <tr>
        <td>2019</td>
        <td></td>
    </tr>
    </tbody>
</table>

ie浏览器中的样式 边框颜色未改变 border-color:#ccc;未起作用
在这里插入图片描述
谷歌浏览器中的样式正常

在这里插入图片描述
解决办法

<table  cellpadding="0" cellspacing="0" >
去掉 border="1" 用css加边框 如下
table,table td,table th{border:1px solid #ccc; border-collapse:collapse;}

ie中原生js动态创建表格兼容

不能像下面这样写 比如你先在页面写标签table 动态往tbody里面添加tr和td
因为ie浏览器中 用原生js innerHTML 只能添加一个完整标签 例如添加表格 table 必须是一个完整的table标签 不然会报错
SCRIPT438: 对象不支持“getElementsById”属性或方法

<table cellpadding="0" cellspacing="0" >
    <thead>
    <tr>
        <th>年份</th>
        <th>否已完成</th>
    </tr>
    </thead>
    <tbody id="year-list">
    </tbody>
</table>
    var nowYear=(new Date()).getFullYear();
    var box=document.getElementsById('year-list');
    box.innerHTML='';
    for (var i=nowYear;i>nowYear-7;i--){
        var html='<tr><td>'+i+'</td><td>是</td></tr>';
        box.innerHTML += html;
    }

解决办法

<div id="table-box">
   页面中要写一个元素 用来存放table 
</div>
    <!--填充表格内容-->
    var nowYear=(new Date()).getFullYear();
    var box=document.getElementById('table-box');
    var html='    <table  cellpadding="0" cellspacing="0" >\n' +
        '        <thead>\n' +
        '        <tr>\n' +
        '            <th>年份</th>\n' +
        '            <th>当前年度继续教育是否已完成</th>\n' +
        '        </tr>\n' +
        '        </thead>\n' +
        '        <tbody id="year-list">';
    for (var i=nowYear;i>nowYear-7;i--){
        html +='<tr><td>'+i+'</td><td>是</td></tr>';
    }
    html+='</tbody></table>';
    box.innerHTML=html;

值得一提的是 页面中用来存放table的 div 最好用id哦 如果用class ie9及以下不兼容 document.getElementsByClassName 会报 undefined

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值