Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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 看来';。getElementsByClassName';打了两次电话_Javascript - Fatal编程技术网

Javascript 看来';。getElementsByClassName';打了两次电话

Javascript 看来';。getElementsByClassName';打了两次电话,javascript,Javascript,我想操纵youtube的DOM来隐藏不需要的视频,我正在努力解决这个错误 未定义的“innerText” 这些是问题部分的源代码,SidebarItems是播放视频时包含“相关视频”元素的数组 var SidebarItems=document.getElementsByClassName('video-list-item'); 对于(_count=0;_count

我想操纵youtube的DOM来隐藏不需要的视频,我正在努力解决这个错误
未定义的“innerText”

这些是问题部分的源代码,
SidebarItems
是播放视频时包含“相关视频”元素的数组

var SidebarItems=document.getElementsByClassName('video-list-item');
对于(_count=0;_count
Chrome控制台显示通道名称和元素计数,如下所示:

这两个结果是不同的,但它们是同时执行的。更准确地说,它似乎是
SidebarItems[_count].getElementsByClassName('g-hovercard')执行两次,并替换上一次的结果。结果,
ChannelName.length==0
变为
true
,并且
返回已执行

我不知道怎么可能。堆栈会爆炸,我的头也会爆炸


请帮忙

SidebarItems[_count].getElementsByClassName('g-hovercard')出现在
for
循环中

(_count=0;_count

每次调用其中包含
GetElementsByCassName
的行时,它都有一个不同的值
\u count

,那么我是否应该将
SidebarItems.length
更改为一些存储初始长度值的变量?
  var SidebarItems = document.getElementsByClassName('video-list-item');

  for(_count = 0; _count < SidebarItems.length; _count++)
  {
    // Is Replaced Video Contaions Blocked Keyword?
    var VideoName = SidebarItems[_count].getElementsByClassName('title');
    if(VideoName.length == 0)
    {
      return;
    }

    if(ValidateString(VideoName[0].innerText))
    {
      SidebarItems[_count].remove();
      continue;
    }

    // Is Replated Video Registered by Blocked Channel?
    var ChannelName = SidebarItems[_count].getElementsByClassName('g-hovercard');
    console.debug(ChannelName);
    console.debug("Element Count = " + ChannelName.length);
    if(ChannelName.length == 0)
    {
      return;
    }

    if(ValidateChannelName(ChannelName[0].innerText))
    {
      SidebarItems[_count].remove();
    }
  }
for(_count = 0; _count < SidebarItems.length; _count++)