function createElementTree(tagName,attributes,children)
{
//判断参数
if(   arguments.length==2  )
{
children=attributes;
attributes=null;
}

//创建需要的结点
var e=document.createElement(tagName);

//初始化节点属性
if(attributes)
{
for(var name in attributes)
{
e.setAttribute(name,attributes[name]);
}
}

//增加子节点
if(children)
{
if(children instanceof Array)
{
for(var item in children)
{
if(typeof item=='string')
{
item=document.createTextNode(children[item]);
}
e.appendChild(item);
}
}
else if(typeof children=='string')
{
children=document.createTextNode(children);
e.appendChild(children);
}
else
{
e.appendChild(children);
}
}
return e;
}
function test()
{
var newNode=createElementTree('table',{border:1},createElementTree('tr',{border:1},createElementTree('td',{border:1},'name')));
document.body.appendChild(newNode);
}
为什么在IE6,7里都不行啊..没有用到不支持的DOM阿..但是IE8和FireFox里就可以..求助

解决方案 »

  1.   

    楼上的,你好,
    我只是初学DOM,所以写这个来熟悉DOM的操作而已,
    所以饶弯子只是为了巩固一下,
    只想知道为什么会有问题而已,
    如果有建议可以说出哪里有问题,谢谢
      

  2.   

    回,my145794 
    是在body里onload事件里加的
      

  3.   

    function test()
    {
        var newNode=createElementTree('table',{border:1},createElementTree('tr',{border:1},createElementTree('td',{border:1},'name')));
        if(document.all) document.body.innerHTML = newNode.outerHTML;
        else document.body.appendChild(newNode);
    }