javascript appendChild不起作用

时间:2011-08-12 14:40:13

标签: javascript dom

我在使用此功能的firefox 3.6上有一个错误

    function GetRefreshedResults(response)
    {   
        var splitted = response.value.split("|");
        var panel = document.getElementById('my-glider');
        var anchors = panel.getElementsByTagName('a');
        for (var i=0; i<anchors.length; i++)
        {
          anchors[i].innerHTML=splitted[i];
        }           
    }

DOM锚点中的哪些广告如       “&lt; a xmlns =”http://www.w3.org/1999/xhtml“&gt;

我现在正试图改用它:

     function GetRefreshedResults(response)
    {   
        var splitted = response.value.split("|");
        var panel = document.getElementById('my-glider');
        var anchors = panel.getElementsByTagName('a');
        for (var i=0; i<anchors.length; i++)
        {
            anchors[i].empty();
            anchors[i].appendChild(splitted[i]);
          //  anchors[i].innerHTML=splitted[i];
        }           
    }

但是我在appendChild中遇到以下错误:

        Uncaught Error: NOT_FOUND_ERR: DOM Exception 8

我不明白为什么它不起作用。谁能帮我 ? 感谢

编辑: 例如:

splitted [0]包含:

   "<div class="var">Visits</div><div class="percent-zero">0%</div><div class="val">0<div class="val-alt">Unique Visits: 0</div></div>"

我想用新内容更新8个锚点,包含在splitted [0],splitted [1] ... splitted [7]

2 个答案:

答案 0 :(得分:4)

splitted[i]是问题所在。 appendChild将DOM元素附加到现有的DOM元素,但看起来你试图追加一个字符串值。如果您想使用appendChild,请创建一个容器元素并使用innerHTML来插入字符串,或者只使用innerHTML。我会说,是一个错误,你无法将字符串附加为DOM元素。另请参阅appendChild上的MDN-page

答案 1 :(得分:3)

response.value.split("|");向我表明您正在将response作为字符串传递。 appendChild仅适用于元素。你不能将孩子附加到扁平的绳子上。