使用querySelectorAll删除元素的userscript失败 - 为什么?

时间:2017-09-26 12:49:07

标签: userscripts selectors-api

目标是根据与用户名称或类的匹配来删除(不隐藏)所有HTML元素。这是相关用户的一部分。它不会删除元素。应该改变什么?

// ==UserScript==
// @name        Clean Giveaway sites
// @version     1.0
// @namespace   namespace
// @description Remove junk from giveaway sites
// @include     http://udemy.com/*
// @include     http://udemyar.com/*
// @include     http://www.udemy.com/*
// @include     http://www.udemyar.com/*
// @include     https://udemy.com/*
// @include     https://udemyar.com/*
// @include     https://www.udemy.com/*
// @include     https://www.udemyar.com/*
// @grant       none
// ==/UserScript==

var killit = document.querySelectorAll('c_header__left');
if (killit[0]) {
  killit[0].parentNode.removeChild(killit[0]);
}


var killit = document.querySelectorAll('c_header__right');
if (killit[0]) {
  killit[0].parentNode.removeChild(killit[0]);
}


var killit = document.querySelectorAll('more-from-instructor ud-react-loader ud-component--more-courses-by-instructor--app ud-react-loaded');
if (killit[0]) {
  killit[0].parentNode.removeChild(killit[0]);
}

1 个答案:

答案 0 :(得分:1)

您在寻找标签吗?因为这是您要求querySelectorAll提取的内容。基本上,如果您的代码中有<c_header__left>...</c_header__left>querySelectorAll('c_header__left')应该找到它。

我假设您正在寻找具有类c_header__left的元素,并且在该cas中您必须在字符串前面添加一个点。

您传递给querySelectorquerySelectorAll的字符串与查找CSS的项目具有相同的语法

更清晰

尝试

var killit = document.querySelectorAll('.c_header__left');