【发布时间】:2020-08-13 06:39:20
【问题描述】:
例如我有一些代码:
<div id='varian'>
<a title='A, B, C, D'></a>
<a title='1, 2, 3, 4'></a>
<a title='1,2, E,3, C, Z2'></a>
</div>
<script>
var varianproduka = document.querySelectorAll('#varian a');
varianproduka.forEach(function(e) {
var aa = e.getAttribute("title"),
ba = aa.split(", ");
for (var ca in ba) {
var da = ba[ca],
ea = "<div>" + da + "</div>";
e.insertBefore(ea, e.childNodes[0]);
}
});
</script>
我想变成这样:
<div id='varian'>
<a title='A, B, C, D'>
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
</a>
<a title='1, 2, 3, 4'>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</a>
<a title='1,2, E,3, C, Z2'>
<div>1,2</div>
<div>E,3</div>
<div>C</div>
<div>Z2</div>
</a>
</div>
但我得到的只是一条错误消息:
“未捕获的 TypeError:无法在 'Node' 上执行 'insertBefore':参数 1 不是 'Node' 类型。”
代码有问题吗?或者如果我们不使用 jQuery 或 appendChild,我们真的无法做到这一点。我不使用 jQuery 和 append 的原因是它们不适用于 iOS。
【问题讨论】:
-
你确定这是你想要的结果。如果您的代码正常工作,则添加元素的顺序将与标题元素相反,因为这就是
insertBefore()所做的 -
我还可以向你保证,有成千上万个使用 jQuery 的网站可以在 iOS 中完美运行。
-
@Phil 哦,我的意思是 jQuery
.append()在 iOS 中无法使用,所以我不会使用它。 -
是什么让你这么想?
标签: javascript html foreach