例如:要对 DOM元素 进行 子元素的添加
 document.getElementsByTagName("body")[0].appendChild(table);JS 如何判断 这个添加动作已经完成?

解决方案 »

  1.   

    可以在后面做一个判断if(document.getElementById(tableID)){
        alert('添加动作已经完成')
    }
      

  2.   

    setTimeout(function(){
       alert('添加完成');
    })
      

  3.   


    如果只有对象 没有 ID 怎么办 ?
    如:添加了N个TR ,N个TD 对象
      

  4.   

    if(table.parentNode == document.getElementsByTagName("body")[0])这样应该也行,判断父节点。
      

  5.   

    document.getElementsByTagName("body")[0].appendChild(table);
    //do something hereappendChild应该是同步执行的 在它后面执行语句即可
      

  6.   


    function IsOK(obj,time){
    if(document.getElementById(obj))
    {
    return true;
    }
    window.setInterval(function(){
    IsOK (obj,time);
        }, time);
    }
    function forbot(obj){
    var bool = IsOK(obj,10);
    if(bool){
    alert(obj+' is created');
    }
    }function createtag(){
    var newDiv = document.createElement("abc");
        newDiv.id = "abc";
    document.getElementsByTagName("body")[0].appendChild(newDiv);
    forbot('abc');//判断是否已经存在
    }setTimeout(createtag,1000);
      

  7.   

    谢谢指教。很受用
    如果执行的是 删除 操作 或 修改  DOM 属性方面 ,又如何判断?
      

  8.   

    因为我要实现:DOM 操作完成后再执行一些方法 ,如果 操作尚未完成就执行那些方法会有错漏。
      

  9.   

    dom有没有添加完元素你应该知道啊,不必在判断,比如你append之后就已经添加完毕了,那么你就在append之后进行其他操作就行了
      

  10.   

    简单的问题。。
    appendChild执行成功后,会返回一个新添加对象的引用,只要判断把这个返回的对象和null进行比较即可。var s = document.getElementById("container___").appendChild(document.createElement("div"));
                    if (s !== null)
                        alert("成功");
                    else
                        alert("失败");
      

  11.   

    加判断,如果dom元素存在,就添加事件,如果不存在,就继续循环。