首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JS中tb.insertRow()在谷歌中的有关问题

2013-08-01 
JS中tb.insertRow()在谷歌中的问题divtable rulescols width100% frameabove styleborder-w

JS中tb.insertRow()在谷歌中的问题

<div>
        <table rules="cols" width="100%" frame="above" style="border-width: 1px" id="PropertyTable">
            <tr>
                <td>
                    新增
                </td>
                <td>
                    排序
                </td>
                <td width="100px">
                    删除
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" value="123"/>
                </td>
                <td>
                    <input type="text" value="333"/>
                </td>
                <td>
                    <input type="text" value="444"/>
                </td>
            </tr>
        </table>
                <input type="button" name="another" value="zxc" onclick="AddAnother()" />


    </div>



下面是JS
<script language="javascript" type="text/javascript">
    var version = navigator.appVersion;
    var start = version.indexOf("MSIE");
    var temp = version.slice(start + 5, start + 6);
    var indexNo = 0;
    //增加一行
    function AddAnother() {
        var tb = document.getElementById("PropertyTable");
        var rowsnum = tb.rows.length - 1;
        //增加一行
        var row = tb.insertRow();
        var cell = row.insertCell();
        cell.innerHTML = tb.rows[1].cells[0].innerHTML;
        if (temp < 9) {
            cell.childNodes[1].previousSibling.value = "";
        }
        else {
            cell.childNodes[1].value = "";
        }
        cell = row.insertCell();
        cell.innerHTML = tb.rows[1].cells[1].innerHTML;
        if (temp < 9) {
            cell.childNodes[1].previousSibling.value = parseInt(tb.rows[rowsnum].cells[1].childNodes[1].previousSibling.value.toString()) + 1;
        }
        else {
            cell.childNodes[1].value = parseInt(tb.rows[rowsnum].cells[1].childNodes[1].value.toString()) + 1;
        }
        cell = row.insertCell();
        cell.innerHTML = tb.rows[1].cells[2].innerHTML;
        ++indexNo;
    }
</script>

在FF和IE中能实现我要的效果,在chrome中就有问题了。。。2楼上效果图


[解决办法]
方法要加上下标,要不出错。。firefox12也报错了,不知道楼主什么版本的firefox能更新。。

    var version = navigator.appVersion;
    var start = version.indexOf("MSIE");
    var temp = version.slice(start + 5, start + 6);
    var indexNo = 0;
    //增加一行
    function AddAnother() {
        var tb = document.getElementById("PropertyTable");
        var rowsnum = tb.rows.length - 1;
        //增加一行
        var row = tb.insertRow(tb.rows.length);////////
        var cell = row.insertCell(0);////////
        cell.innerHTML = tb.rows[1].cells[0].innerHTML;
        if (temp < 9) {
            cell.childNodes[1].previousSibling.value = "";
        }
        else {
            cell.childNodes[1].value = "";
        }
        cell = row.insertCell(1);//////////
        cell.innerHTML = tb.rows[1].cells[1].innerHTML;
        if (temp < 9) {
            cell.childNodes[1].previousSibling.value = parseInt(tb.rows[rowsnum].cells[1].childNodes[1].previousSibling.value.toString()) + 1;
        }
        else {
            cell.childNodes[1].value = parseInt(tb.rows[rowsnum].cells[1].childNodes[1].value.toString()) + 1;
        }


        cell = row.insertCell(2);//////
        cell.innerHTML = tb.rows[1].cells[2].innerHTML;
        ++indexNo;
    }

热点排行
Bad Request.