Hi
Ich hänge mit JS eine tr-Tabellenzeile an eine andere Tabelle. In etwa so:
Das klappt so wie es sollte.
Danach gebe ich ein Inputfeld in einer bestimmten Zelle an eine andere Funktion:
(Die Funktion erwartet ein DOM Element, nicht ein jQuery Element, weshalb da am Schluss noch get() aufgerufen wird
In dieser Funktion funktioniert auch alles, bis auf:
"obj.parentNode"
Vereinfachte Funktion:
Es ist für mich kein Problem, da ich die Aufrufe jetzt einfach auch auf jQuery umbaue.
Mich würde aber interessieren wieso das so ist? Vor allem, wieso jQuery den Parent findet und normales JavaScript nicht?
Ich hänge mit JS eine tr-Tabellenzeile an eine andere Tabelle. In etwa so:
Javascript:
var block = $(this).parent().parent(); //Block = tr-Element
...
if(tbody.children("tr:last").length==0) {
tobdy.html(block);
} else {
tbody.children("tr:last").after(block);
}
Danach gebe ich ein Inputfeld in einer bestimmten Zelle an eine andere Funktion:
Javascript:
myFunction(block.children("[name=NyName]").children("input").get());
In dieser Funktion funktioniert auch alles, bis auf:
"obj.parentNode"
Vereinfachte Funktion:
Javascript:
function myFunction(obj) {
//mit jQuery funktioniert die Suche nach dem Parent einwandfrei:
$(obj).parent().parent().doSomething();
//Mit normalem JavaScript nicht:
console.log(obj); //-> Ausgabe: [input#MyID]
console.log(obj.parentNode); //-> Ausgabe: undefined
console.log(obj.parentNode.parentNode); //-> Ausgabe: Uncaught TypeError: Cannot read property 'parentNode' of undefined
}
Mich würde aber interessieren wieso das so ist? Vor allem, wieso jQuery den Parent findet und normales JavaScript nicht?
Zuletzt bearbeitet von einem Moderator: