0
我想操縱YouTube的DOM來隱藏不需要的視頻,並且我正在努力處理錯誤 'innerText' of undefined
。看起來'.getElementsByClassName'被調用兩次
這些是問題部分的源代碼,SidebarItems
是播放視頻時具有「相關視頻」元素的數組。
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();
}
}
這兩個結果是不同的,但這些同時執行。更準確,似乎SidebarItems[_count].getElementsByClassName('g-hovercard');
被執行兩次,並取代了前一個的結果。結果,ChannelName.length == 0
變爲true
,並且return;
被執行。
我不知道該怎麼辦。堆棧正在炸燬,而我的腦袋也一樣。
請幫忙!
那麼,我應該改變'SidebarItems.length'爲一些變量存儲初始長度值? –