2017-11-17 4 views
0

は、私は次の操作を行います。DOMが見つからないエラー混乱

$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); 
} 

(私はis_objectテストはおそらく不必要であることを認識しますが、フラストレーションからこれを追加しました)とのinsertBeforeで受信

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

ない非常に明確にする必要があります - しかし、推測 '$ anchor-> parentNode->のinsertBefore($コンテナ、$などanchor-> parentNode-> lastChild); ' –

+0

私はそうは思わない。 insertは、$ anchorの最後の子の前に置く必要があり、$ anchorの親の最後の子ではありません。 混乱は、insertBeforeのすべての要素が存在することです...見つからないものはわかりません。 – Ayen

+1

あなたはparentNodeに基づいてinsertBeforeを試してから、現在のノードの最後のサブノードの前にinsertを挿入しようとしています。もしそうなら、現在持っているものから ' - > parentNode'を削除してください。 –

答えて

1

parentNodeに基づいて要素を挿入しようとしましたが、lastChildの前に挿入しています。これは1世代離れている。

ので、代わりの..

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

それは...

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