蛋痛的要死啊
Chrome,FireFox,甚至搜狗的高速内核都测试通过了,可是IE就是不行。
var tr = document.getElementById("tr"+row);<tr id="tr1"><td>1</td><td><a onclick="move(1, -1, 4);">↑</a>
&nbsp;<a onclick="move(1, 1, 4)">↓</a></td><td>第一行</td><td>COL1</td></tr>IE下就这么悲剧了tr变量的类型是object我去,这不就是没获取到么。
求大侠帮忙-。-怎么解决。

解决方案 »

  1.   

    我的IE8测试过了 没有问题。
    你的js代码是不是没有放到onload()函数里面?
      

  2.   

    IE9又躺枪了么另外=。=放到onload()里,啥意思-。-
      

  3.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
    function up_tr(row) {
    var tr = document.getElementById("_tr"+row);
    alert("_tr"+row);
    alert(tr);
    var tr_up = document.getElementById("_tr"+(row-1));
    switch_tr(tr, tr_up, row, row-1);
    }

    function down_tr(row) {
    var tr = document.getElementById("_tr"+row);
    var tr_down = document.getElementById("_tr"+(row+1));
    switch_tr(tr, tr_down, row, row+1);
    }

    function switch_tr(r1, r2, n1, n2) {
    alert(r1);
    var temp = r1.innerHTML;
    var t = r2.innerHTML.replace("<td>"+n2+"</td>", "<td>"+n1+"</td>");
    t = t.replace(new RegExp("move[(]"+n2, "g"), "move("+n1);
    r1.innerHTML = t;
    t = temp.replace("<td>"+n1+"</td>", "<td>"+n2+"</td>");
    t = t.replace(new RegExp("move[(]"+n2, "g"), "move("+n2);
    r2.innerHTML = t;
    }

    function move(row, amount, max) {
    if(amount == 0)
    return;
    if(row+amount < 1)
    {
    alert("已经到最顶端!");
    return;
    }
    if(row + amount > max)
    {
    alert("已经到最底端!");
    return;
    }
    if(amount > 0)
    {
    for(var i=0; i<amount; i++)
    down_tr(row+i);
    }
    if(amount <0)
    {
    for(var i=0; i>amount; i--)
    up_tr(row+i);
    }
    }

    function show_ttt() {
    document.getElementById("text_a").value = document.getElementById("ttt").innerHTML;
    }
    </script>
    <title>上下移动测试</title>
    </head>
    <body>
    <div id="ttt">
    <table border="1">
    <tr><td>序号</td><td>操纵</td><td>内容</td></tr>
    <tr id="_tr1"><td>1</td><td><a onclick="move(1, -1, 4);">↑</a>
    &nbsp;<a onclick="move(1, 1, 4)">↓</a></td><td>第一行</td><td>COL1</td></tr>
    <tr id="_tr2"><td>2</td><td><a onclick="move(2, -1, 4);">↑</a>
    &nbsp;<a onclick="move(2, 1, 4)">↓</a></td><td>第二行</td><td>COL2</td></tr>
    <tr id="_tr3"><td>3</td><td><a onclick="move(3, -1, 4);">↑</a>
    &nbsp;<a onclick="move(3, 1, 4)">↓</a></td><td>第三行</td><td>COL3</td></tr>
    <tr id="_tr4"><td>4</td><td><a onclick="move(4, -1, 4);">↑</a>
    &nbsp;<a onclick="move(4, 1, 4)">↓</a></td><td>第四行</td><td>COL4</td></tr>
    </table>
    </div>
    <a onclick="show_ttt();">显示内容</a>
    <form>
    <textarea id="text_a" rows="15" cols="80"></textarea>
    </form>
    </body>
    </html>
      

  4.   

    html文档载入后才能执行js脚本,所以要写在onload()里面window.onload=function(){
    //写你的代码
    }
      

  5.   

    好吧,IE获取到了,innerHTML有内容那么为啥不给我对换蛋碎了
      

  6.   

    我去设置各种alert发现原来是innerHTML赋值通不过,郁闷。
      

  7.   

    IE反正蛋痛。公司的项目因为iframe只有IE能看,ie9还得开兼容模式。结果我的是只有IE用不了,这不折磨人么
      

  8.   

    我擦IE部分标签的innerHTML是只读的。我勒个去
      

  9.   

    无解决办法,最后jQuery实现功能,但是纯JS目前没找到。IE对table内部的HTML代码是锁定的。