c'est mon 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>
il génère une erreur "AppendChild n'est pas une fonction". J'ai essayé de chercher une solution .. il a été suggéré que sur le lieu de
div.appendChild (element);
cela devrait être posté
div [0] .appendChild (element);
cela n'a pas changé l'erreur. Veuillez suggérer
Votre variable div
est une chaîne, pas un objet d'élément DOM:
var div = '<div>top div</div>';
Les chaînes n'ont pas de méthode appendChild
. Au lieu de créer une chaîne HTML brute, créez la div en tant qu'élément DOM et ajoutez un nœud de texte, puis ajoutez l'élément d'entrée:
var div = document.createElement('div');
div.appendChild(document.createTextNode('top div'));
div.appendChild(element);
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() {
}
Essayez ce qui suit:
var div = document.createElement("div");
div.innerHTML = "topdiv";
div.appendChild(element);
document.body.appendChild(div);
Il suffit de changer
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";
Dans ce
var div = '<div>top div</div>';
"div" n'est pas un objet DOM, c'est juste une chaîne et string n'a pas de string .appendChild.
Voici quelques références pouvant vous aider sur la méthode 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>