2014-05-01 9 views
6

Hier ist meine einfache HTML:Warum schlägt Aufruf von jQuery appendChild mit undefiniertem Fehler fehl?

<body> 
    <div id="myParentDivElement"> 
     Hello World! 
    </div> 
</body> 

Hier ist die Begleit JavaScript:

$(document).ready(function() { 
    var myDOMElement = document.getElementById("myParentDivElement"); 

    var newDivID = "div_1"; 
    var newDiv = $('<div id="' + newDivID + '"/>'); 
    $(newDiv).css('marginLeft', '50px'); 

    var newSpanID = "span_1"; 
    var newSpan = $('<span id="' + newSpanID + '"/>'); 
    newSpan.text('myLabel'); 
    newDiv.appendChild(newSpan); 
    $(myDOMElement).appendChild(newDiv); 
}); 

Aber wenn ich diesen Code ausführen newDiv.appendChild(newSpan); die Zeile gibt die folgende Fehlermeldung:

Uncaught TypeError: undefined is not a function 

Can jemand erklären warum? ist die JSFiddle zeigt, dass es nicht funktioniert: http://jsfiddle.net/TsTMx/2/

+0

Warum nicht eine dieser Antworten akzeptieren? –

Antwort

12

.appendChild() eine einfache JavaScript-Methode, nicht jQuery. Die jQuery-Methode lautet .append().

newDiv.append(newSpan); 
$(myDOMElement).append(newDiv); 
+1

'appendChild' ist DOM, kein JavaScript. – Quentin

+1

Es stimmt, dass es Teil von DOM ist, aber es ist fair zu sagen, dass es eine einfache JavaScript-Methode im Gegensatz zu einer jQuery-Methode ist. – MrCode

+0

DOM Methoden werden vom Browser zur Verfügung gestellt und neigen dazu, in C/C++/Objective-C geschrieben zu werden, während jQuery in JS geschrieben wird, während 'append' am Ende die DOM Methode aufruft und in JS selbst geschrieben wird:) – Quentin

Verwandte Themen