2017-11-17 2 views
0

ich wie folgt vor:DOM nicht gefunden Error Verwirrung

$container = $element->ownerDocument->createNode($tag); 
if ($anchor->hasChildNodes() && 
    is_object($anchor->lastChild) && 
    $anchor->lastChild->nodeName == 'span' && 
    $container->nodeName == 'span') { 

     $anchor->parentNode->insertBefore($container, $anchor->lastChild); 
} 

(Ich weiß, dass die is_object Test wahrscheinlich überflüssig ist, aber es aus Frustration hinzugefügt) und auf der insert erhalten

Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error' 
+0

nicht ganz klar - aber wie eine Vermutung '$ Anker-> parentNode-> insert ($ container, $ anchor-> parentNode-> lastChild); ' –

+0

Ich glaube nicht. Die Einfügung muss vor dem letzten untergeordneten Element von $ anchor platziert werden, nicht vor dem letzten untergeordneten Element des übergeordneten Elements von $ anchor. Die Verwirrung ist, dass alle Elemente des insertBefore existieren ... also weiß ich nicht, was nicht gefunden wird. – Ayen

+1

Sie versuchen ,Before basierend auf dem parentNode einzufügen und dann das Einfügen vor dem letzten Unterknoten des aktuellen Knotens zu sagen. Wenn ja - entfernen Sie den '-> parentNode' von dem, was Sie gerade haben –

Antwort

1

Ihr Versuch, ein Element basierend auf dem parentNode einzufügen, aber vor dem lastChild einzufügen. Dies ist eine Generation auseinander.

Also statt ..

$anchor->parentNode->insertBefore($container, $anchor->lastChild); 

sollte es sein ...

$anchor->insertBefore($container, $anchor->lastChild); 
Verwandte Themen