如何使用javascript在锚定之前插入元素 函数插入图标(){ var images=document.images; 对于(var i=0;i

如何使用javascript在锚定之前插入元素 函数插入图标(){ var images=document.images; 对于(var i=0;i,javascript,dom,Javascript,Dom,如果您说需要从其父级中删除,并在该之前插入,则执行以下操作: <img class="icone" src="images/google.png"/><a href="http://google.com" target="_self"> <img class="cover_imagem" src="cover/2.jpg"</a> //父对象--------v的--------v的--------v images[i].parentNode.paren

如果您说需要从其父级
中删除
,并在该
之前插入
,则执行以下操作:

<img class="icone" src="images/google.png"/><a href="http://google.com" target="_self"> <img class="cover_imagem" src="cover/2.jpg"</a>
//父对象--------v的--------v的--------v
images[i].parentNode.parentNode.insertBefore(images[i],images[i].parentNode);

这将调用
的父节点(即
的父节点)上的
insertBefore
,并在

之前插入
,如果您说
需要从其父节点
中删除并插入
,则执行以下操作:

<img class="icone" src="images/google.png"/><a href="http://google.com" target="_self"> <img class="cover_imagem" src="cover/2.jpg"</a>
//父对象--------v的--------v的--------v
images[i].parentNode.parentNode.insertBefore(images[i],images[i].parentNode);

这将调用
的父节点(即
的父节点)上的
insertBefore
,并将
插入到

之前。我知道这并不完全是您问题的答案,但您可以尝试使用css。但是,这不会在所有浏览器中都起作用

 // parent of <a>--------v    the <img>---------v   the <a>----------v
images[i].parentNode.parentNode.insertBefore( images[i], images[i].parentNode );


使用JavaScript在循环中执行此操作将导致许多重绘,这可能会破坏网页的性能和感知性能。理想情况下,您可以使用类似的方法来测试用户的浏览器是否支持这些功能,并仅在必要时才执行JS回退。

我知道这并不是解决您的问题的正确答案问题,但您可以尝试使用css。然而,这在所有浏览器中都不起作用

 // parent of <a>--------v    the <img>---------v   the <a>----------v
images[i].parentNode.parentNode.insertBefore( images[i], images[i].parentNode );


使用JavaScript在循环中执行此操作将导致许多重绘,这可能会破坏网页的性能和感知性能。理想情况下,您可以使用类似的工具来测试用户的浏览器是否支持这些功能,并仅在必要时执行JS回退。

大约,
images[i].parentNode.parentNode.insertBefore(currentElement,images[i].parentNode);
引起无限循环,但谢谢您的评论。@joelson:这不会对我造成无限循环。如果您需要进一步帮助,您需要发布再现问题的所有相关代码。大约,
images[i].parentNode.parentNode.insertBefore(currentElement,images[i].parentNode);
引起无限循环,但谢谢您的评论。@joelson:这不会对我造成无限循环。如果您需要进一步帮助,您需要发布所有重现问题的相关代码。