我有以下javascript代码,可以将上传者名称放在上传日期和观看次数之前,在Youtube搜索结果中显示。
function hasClass(element, cls) {
return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}
var elems = document.getElementsByClassName('yt-lockup-meta-info');
var elemss = document.getElementsByClassName('yt-uix-sessionlink g-hovercard spf-link');
var elemsss = 1;
var elemssss = 0;
var myElem = document.getElementById('sb-button-notify');
if (myElem == null) elemsss = 0; // these two lines are here to skip the additional element
// that is only there if you are logged in
for (var i = 0; i < elems.length; ++i) {
if (hasClass(elemss[i+elemsss],'yt-uix-tile-link'))
{elemssss=elemssss+1;elemsss=elemsss+3;alert('damn');}
elems[i+elemssss].insertBefore(elemss[i+elemsss],elems[i+elemssss].firstChild);}
如果我想检查一个具有多个类的元素的整个 class 属性,而不是使用 hasClass 函数,该怎么办?以下方法行不通:
element.className=='yt-uix-sessionlink yt-uix-tile-link
yt-ui-ellipsis yt-ui-ellipsis-2 g-hovercard spf-link'
我只需要检查类,这样代码就可以跳过具有特定类的元素。更好的解决方案是替代document.getElementsByClassName,它只会获取具有完全给定类的元素,并忽略具有更多类的元素。
element.classList
目前的支持有些欠缺。 - user4639281length
属性和contains
函数进行比较即可。 - vinayakj