未知NotFoundError:无法在“节点”上执行“ insertBefore”:要在其之前插入新节点的节点不是该节点的子节点

2020/12/25 11:21 · jquery ·  · 0评论

我在使用Javascript时遇到问题。我收到此错误消息:

未发现NotFoundError:在“节点”上执行“ insertBefore”失败:要在其之前插入新节点的节点不是该节点的子节点。

Javascript:

var vidCounter = 0;
    vidCounter++;
var originalDiv;
var newVideo = document.createElement("video");
    newVideo.setAttribute("name", vidCounter);
    newVideo.setAttribute("autoplay", "true");
    originalDiv = document.getElementById("othersarea");
    document.body.insertBefore(newVideo, originalDiv); 

它正在尝试在<video>名为的div下方添加标签othersarea

<div id="remoteVideos">
    <div class="title">
        <h2>Others</h2>
    </div>
    <div id="othersarea">
    </div>
</div>

我该如何解决?

我还想attachMediaStream([VIDEO TAG HERE HOW?], event.stream);在新的视频代码上运行

您必须调用insertBefore之前要插入的元素的父元素。document.body不是父级,而是位于DOM层次结构中。

要在DIV之后插入,必须在其下一个兄弟姐妹之前插入。

var parentDiv = document.getElementById("remoteVideos");
parentDiv.insertBefore(newVideo, originalDiv.nextSibling);

请参阅MDN中的示例

尝试使用parentNode

originalDiv.parentNode.insertBefore(newVideo, originalDiv); 

这会将newVideo直接插入到originalDiv的前面。

其原因在于,node.insertBefore(newNode, existingNode)使用node以围绕所述元素的引用existingNode

参考:http : //www.w3schools.com/jsref/met_node_insertbefore.asp

这也是Google Analytics(分析)所做的:http :
//www.stevesouders.com/blog/2010/05/11/appendchild-vs-insertbefore/

本文地址:http://jquery.askforanswer.com/weizhinotfounderrorwufazaijiedianshangzhixing-insertbeforeyaozaiqizhiqiancharuxinba.html
文章标签: ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!