用于删除HTML线,类和属性的用户脚本

问题描述 投票:0回答:2

我想创建一个简短的用户脚本,因为我讨厌这个令人讨厌的黄色笑脸!

有两条html行,将正常的笑脸(:)变成黄色图标

 <span class="emoticon_text" aria-hidden="true"> :) </span>

 <span title=":)" class="emoticon emoticon_smile"></span>

所以,在第一行中,我必须删除classaria-hidden

在第二行中,它可以是class =“ emoticon emoticon_smile”,也可以是class =“ emoticon emoticon_cool”

我尝试过:

[document.getElementsByClassName("emoticon_ text").removeAttribute("aria-hidden"); document.getElementsByClassName("emoticon_ text").className = "";

但是失败了,所以我希望你们能帮助我,因为我的Javescript / jQuery技能很差。。

谢谢

对不起我的语法错误

javascript jquery html userscripts removeclass
2个回答
0
投票

document.getElementsByClassName返回一个HTMLCollection,它基本上是一个匹配元素的数组。您必须遍历该集合并为匹配的每个元素运行代码。

第二,您需要找到表情符号本身并删除它,因为您需要获取每个表情符号的父对象并告诉它删除元素。最后,您的代码将类似于以下内容:

//Finds all emoticon texts
var emoticonTexts = document.getElementsByClassName("emoticon_text");

//Iterate over the results and remove the desired attributes
for (var i = emoticonTexts.length-1; i >= 0; i -= 1) {
    var element = emoticonTexts[i];
    element.removeAttribute("aria-hidden");
    element.className = "";
}

//Find all emoticon images
var emoticons = document.getElementsByClassName("emoticon");

//Iterate over the results and remove them from the page
for (var i = emoticons.length-1; i >= 0; i -= 1) {
    var element = emoticons[i];
    element.parentNode.removeChild(element);
}

Also available as an example on JSFiddle


0
投票

我会考虑使用jQuery。一旦在项目中引用了jQuery库,您的解决方案就应该很简单:

$(".emoticon_text").removeAttr("aria-hidden").removeClass("emoticon_text");
© www.soinside.com 2019 - 2024. All rights reserved.