拼接不是函数错误
Splice is not a function error
我收到错误 tweetParentsArray.splice 不是函数
在 injectFactCheck
function injectFactCheck(){
var index = 5;
var tweetParentsArray = document.getElementsByClassName("js-stream-tweet");
if(tweetParentsArray.length == 0){return;}
tweetParentsArray.splice(0, index);
当我 console.log tweetParentsArray 时,它对我来说似乎是一个普通数组,所以我不确定为什么这个函数不存在于这个对象上。
getElementsByClassName
return 一个 HTML 集合。它没有拼接方法。
可以将HTMLCollection转为数组,使用拼接的方式。
var tweetParentsArray = Array.prototype.slice.call(document.getElementsByClassName("js-stream-tweet"))
if (tweetParentsArray.length == 0) {
return;
}
tweetParentsArray.splice(0, index)
这实际上是一个 HTMLCollection,即 "array-like"。有关详细信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection。
document.getElementsByClassName returns HTMLCollection 这不是数组。您可以使用Array.prototype.slice.call(htmlCollection)
将其转换为数组,然后用数组进行进一步计算。
function injectFactCheck(){
var index = 5;
var htmlCollection = document.getElementsByClassName("js-stream-tweet");
var tweetParentsArray = Array.prototype.slice.call(htmlCollection);
if (tweetParentsArray.length == 0){return;}
tweetParentsArray.splice(0, index);
}
看更多这个问题:Most efficient way to convert an HTMLCollection to an Array
我收到错误 tweetParentsArray.splice 不是函数 在 injectFactCheck
function injectFactCheck(){
var index = 5;
var tweetParentsArray = document.getElementsByClassName("js-stream-tweet");
if(tweetParentsArray.length == 0){return;}
tweetParentsArray.splice(0, index);
当我 console.log tweetParentsArray 时,它对我来说似乎是一个普通数组,所以我不确定为什么这个函数不存在于这个对象上。
getElementsByClassName
return 一个 HTML 集合。它没有拼接方法。
可以将HTMLCollection转为数组,使用拼接的方式。
var tweetParentsArray = Array.prototype.slice.call(document.getElementsByClassName("js-stream-tweet"))
if (tweetParentsArray.length == 0) {
return;
}
tweetParentsArray.splice(0, index)
这实际上是一个 HTMLCollection,即 "array-like"。有关详细信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection。
document.getElementsByClassName returns HTMLCollection 这不是数组。您可以使用Array.prototype.slice.call(htmlCollection)
将其转换为数组,然后用数组进行进一步计算。
function injectFactCheck(){
var index = 5;
var htmlCollection = document.getElementsByClassName("js-stream-tweet");
var tweetParentsArray = Array.prototype.slice.call(htmlCollection);
if (tweetParentsArray.length == 0){return;}
tweetParentsArray.splice(0, index);
}
看更多这个问题:Most efficient way to convert an HTMLCollection to an Array