所以我正在为一个油脂猴机器人编写一些代码,但在网站上,机器人用于JavaScript函数splice()无法识别,并且在运行时绝对没有。我正在使用的数组包含大约100个左右的不同元素,这些元素都来自网页,然后我需要对它们进行排序,如果它们具有某种样式,则将它们删除...(变量先前已初始化)
list = document.getElementById("raffles-list").children;
while (a > list.length) {
if (list[a].style != "") {
list.splice(a, 1);
a++;
}
}
我知道这与我的电脑无关,因为我能够在其他网站上拼接,所以有没有办法可以在没有拼接的情况下删除元素,或者有没有办法让它在网站上工作?
答案 0 :(得分:1)
会发生这种情况,因为Node.children
会返回HTMLCollection
,这不是数组而且没有拼接方法 - for more information look MDN。
您可以使用Array.prototype.splice.call(list, a, 1)
,这必须做到这一点。
答案 1 :(得分:0)
要删除HTMLCollection项,请使用删除功能:
list[a].remove();
以下是演示该功能的代码段,您需要相应地调整逻辑。
var list = document.getElementById("somelist").children;
//not knowing what your initial a value, setting it to zero
var a =0;
var output = document.getElementById("output");
//go through the list
while (list.length>0) {
//get an item
var item = list.item(0);
output.innerHTML+="Removed: " + item.innerHTML+"<br/>";
list[0].remove();
}
&#13;
<ul id="somelist">
<li style='a'>what</li>
<li style='b'>is</li>
<li style=''>this</li>
</ul>
<p>Output:</p>
<div id="output"></div>
&#13;