拼接不是函数错误

时间:2017-04-30 05:35:39

标签: javascript arrays splice

我收到错误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对我来说似乎是一个正常的数组,所以我不确定为什么这个函数不存在于这个对象上。

3 个答案:

答案 0 :(得分:1)

document.getElementsByClassName返回不是数组的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

答案 1 :(得分:0)

UIPageViewController返回HTMLCollection。它没有拼接方法。 您可以将HTMLCollection转换为数组以使用splice方法。

getElementsByClassName

答案 2 :(得分:0)

这实际上是一个HTMLCollection,它是"类似数组"。有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection