我在 Firefox JS 扩展中编写了这段代码
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");
我得到了这个输出
结果.length=12 删除计数=2 (我准备)
而且...仅此而已 results.shift() 有问题; 我查看了 Firefox 错误控制台,发现了这个
“results.shift 不是函数”
为什么? shift是js函数吗? 当我尝试在 Firefox 控制台中运行此代码时,我再次遇到此错误怎么了?
我的 Firefox 版本是 4。 测试的网址是http://yandex.ru/yandsearch?text=%D0%BE%D0%B1%D0%BE%D0%B9%D0%BD%D1%8B%D0%B9+%D0%BA%D0%BB%D0%B5%D0%B9+%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C&lr=37
最佳答案
这会将您的nodelist
转换为真正的Array
,它具有可用的shift
方法:
var results = Array.prototype.slice.call(
gBrowser
.contentDocument
.getElementsByClassName("b-serp-item__title-link")
);
关于javascript - results.shift 不是函数 : firefox extension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5786617/