我的目标是创建一个元素来充当现有元素的占位符。出于样式目的,我需要将元素移动到另一个元素之后(位置:绝对不是一个好的解决方案),以便我可以设置动态位置。
我的问题是标记是由 javascript 生成的,我唯一的选择就是通过 javascript 来调整它。这是我需要覆盖的第三方小部件。
当前标记:
<li class="...">
<a class="time" href="...." >
<time pubdate="" class="...">...</time>
</a>
<div class="...">
...
</div>
<div class="...">
...
</div>
<div class="bottom-wrapper">
<span class="stats-container">
<span class="stats">
<span class="likes">
...
</span>
<span class="favorites">
...
</span>
</span>
</span>
</div>
我想a.time
在span.likes
.
目标:
<li class="...">
<div class="...">
...
</div>
<div class="...">
...
</div>
<div class="bottom-wrapper">
<span class="stats-container">
<span class="stats">
<span class="likes">
...
</span>
<span class="new-span">
<a class="time" href="...." >
<time pubdate="" class="...">...</time>
</a>
</span>
<span class="favorites">
...
</span>
</span>
</span>
</div>
</li>
出于某种原因,我需要在本机 javascript (No Jquery) 中执行此操作。
我的代码:
// Create a new, plain <span> element
var createElem = document.createElement('span');
// Get a reference to the element, before we want to insert the element
var containerElem = document.getElementsByClassName("likes");
// Get a reference to the parent element
var parentDiv = containerElem.parentNode;
// Insert the new element into the DOM after containerElem
parentDiv.insertBefore(createElem, containerElem.nextSibling);
但是,上面的代码会引发错误(请参见下文):
Uncaught TypeError: Cannot call method 'insertBefore' of null
Uncaught TypeError: Cannot call method 'insertBefore' of undefined
知道我该怎么做吗?谢谢
编辑:我也有多个 LI。所以我需要遍历这个脚本中的所有 LI。