AppendChild()不是函数javascript

时间:2014-05-15 09:12:13

标签: javascript html .net

这是我的javascript

<head runat="server">
    <script type="text/javascript" language="javascript">

        function createQuestionPanel() {

            var element = document.createElement("Input");
            element.setAttribute("type", "button");
            element.setAttribute("value", "button");
            element.setAttribute("name", "button");


            var div = '<div>top div</div>';
            div[0].appendChild(element);

        }

        function formvalidate() {

        }

    </script>
</head>
<body onload="createQuestionPanel()">
</body>
</html>

抛出错误“AppendChild不是函数”。我试图寻找解决方案..有人建议在

的地方
  

div.appendChild(元件);

这应该发布

  

DIV [0] .appendChild(元件);

它没有改变错误。请建议

6 个答案:

答案 0 :(得分:12)

您的div变量是一个字符串,而不是DOM元素对象:

var div = '<div>top div</div>';

字符串没有appendChild方法。不是创建原始HTML字符串,而是将div创建为DOM元素并附加文本节点,然后附加输入元素:

var div = document.createElement('div');
div.appendChild(document.createTextNode('top div'));

div.appendChild(element);

答案 1 :(得分:6)

 function createQuestionPanel() {

        var element = document.createElement("Input");
        element.setAttribute("type", "button");
        element.setAttribute("value", "button");
        element.setAttribute("name", "button");


        var div = document.createElement("div"); <------- Create DIv Node
        div.appendChild(element);<--------------------
        document.body.appendChild(div) <------------- Then append it to body

    }

    function formvalidate() {

    }

答案 2 :(得分:1)

在此

var div = '<div>top div</div>';

“ div”不是DOM对象,只是一个字符串,并且 字符串没有 string .appendChild。

这里有一些参考可以帮助您使用appendChild方法:

<div id="div1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

<script>
var para = document.createElement("p");
var node = document.createTextNode("This is new.");
para.appendChild(node);

var element = document.getElementById("div1");
element.appendChild(para);
</script>

答案 3 :(得分:0)

尝试以下方法:

var div = document.createElement("div");
div.innerHTML = "topdiv";
div.appendChild(element);
document.body.appendChild(div);

答案 4 :(得分:0)

只需更改

var div = '<div>top div</div>'; // you just created a text string

var div = document.createElement("div"); // we want a DIV element instead
div.innerHTML = "top div";

答案 5 :(得分:0)

我只是使用 $(".ClassName")[0].appendChild(div);$("#IdName")[0].appendChild(div); x)