[英]Creating a bookmarklet that will hide a div if the div contains certain text
我希望创建一个主要在此页面上使用的书签: http : //forum.sectioneighty.com/find-new/528631/posts
它将使用“ discussionListItem”类搜索div。 “ discussionListItem”是具有“ forumLink”类的div的父级。 如果“ forumLink”包含字符串“ Music”,则将“ display:none”添加到其父级“ discussionListItem”。
到目前为止,我已经创建了它,它可以工作:
javascript:(function(){document.getElementsByClassName('discussionListItem')[0].style.setProperty('display', 'none', 'important');})();
它隐藏了具有“ discussionListItem”类的第一个div。
在此基础上,我这样写:
javascript:(function(){$(".discussionListItem .forumLink a:contains('Music')").closest(".discussionListItem").css("display" , "none");});();
就目前为止,我已经完成了最初的请求,但是没有用。 我对Javascript / jQuery的了解不佳,因此可以确定我缺少一些东西。 我将此代码基于在这里找到的答案: 如果div包含特定的文本字符串,请编辑父级的CSS
另外,如果有任何简便的方法,我希望它能够搜索多个字符串...因此,如果.forumList包含“ Music”或“ Sports”或“ Life”,它将更改其父级的div显示:无。
谢谢!
我不认为jQuery将在小书签的范围内。 该站点会将您的代码转换为可支持jQuery的书签。 您的代码如下所示:
(function(){
var searchArray = ["Music", "Sports", "Life"];
for(var searchIndex in searchArray)
$(".discussionListItem:contains("+searchArray[searchIndex]+")").css({"display":"none"});
})();
我可以从控制台正常运行它,但是如果您遇到问题,请尝试使用书签/ jQuery转换器。
另外,您也可以使用纯JavaScript编写它,看起来应该非常相似。 您应该可以将其作为书签运行,而无需进行任何转换。
(function() {
var searchArray = ["Music", "Sports", "Life"];
var elements = Array.prototype.slice.call(document.body.querySelectorAll(".discussionListItem"));
for(var searchIndex in searchArray)
for(var elIndex in elements)
if(elements[elIndex].innerHTML.indexOf(searchArray[searchIndex])>=0)
elements[elIndex].style.display = "none";
})();
$('.discussionListItem .forumLink:contains("Music")').parents('.discussionListItem').hide()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.