Javascript results.shift不是一个函数:firefox扩展
我已经在FirefoxJS扩展中编写了这段代码Javascript results.shift不是一个函数:firefox扩展,javascript,firefox-addon,Javascript,Firefox Addon,我已经在FirefoxJS扩展中编写了这段代码 var results = gBrowser.contentDocument.getElementsByClassName("b-serp-item__title-link"); alert(results.length); var countToDelete = results.length - 10; alert(countToDelete); if (countToDelete > 0) { for (var i = 0; i
var results = gBrowser.contentDocument.getElementsByClassName("b-serp-item__title-link");
alert(results.length);
var countToDelete = results.length - 10;
alert(countToDelete);
if (countToDelete > 0)
{
for (var i = 0; i < countToDelete; i++);
{
alert("I prepare");
results.shift();
alert("I done");
}
}
alert("succ");
var results=gBrowser.contentDocument.getElementsByClassName(“b-serp-item_uutitle-link”);
警报(结果、长度);
var countToDelete=results.length-10;
警报(countToDelete);
如果(countToDelete>0)
{
对于(var i=0;i
我得到了这个输出
结果:长度=12
countToDelete=2
(我准备)
而且。。。这就是全部
在results.shift()中存在问题;
我在Firefox错误控制台中找到了这个
“results.shift不是一个函数”
为什么??shift是js函数吗?
当我尝试在firefox控制台中运行此代码时,我再次遇到此错误
怎么了
我的Firefox版本是4。
测试的url为如果要使用shift(),则需要将HTMLCollection转换为数组:
我认为很明显,壁虎身上不存在
shift()
:
主要问题是你想通过它实现什么?通过从
NodeList
中删除项,您肯定不会从DOM文档中删除它们。您与removeChild()
有什么矛盾?这将把您的节点列表
转换为一个真正的数组
,该数组有一个可用的移位
方法:
var results = Array.prototype.slice.call(
gBrowser
.contentDocument
.getElementsByClassName("b-serp-item__title-link")
);
不,它很像一个数组:它有一个长度,你可以使用
collection[0]
,collection[1]
,等等来获取它的元素,但它实际上不是一个数组。