Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript results.shift不是一个函数:firefox扩展_Javascript_Firefox Addon - Fatal编程技术网

Javascript results.shift不是一个函数:firefox扩展

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

我已经在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 < 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]
,等等来获取它的元素,但它实际上不是一个数组。