如何解决使用 JQuery 删除具有多个类的元素
我知道类似的问题已经被问过几次了,但我已经找了一段时间,但没有找到任何可以回答我的具体问题的内容……所以请耐心等待。我也是一个完整的新手(只是使用 jQuery 作为达到目的的手段)所以如果问题很愚蠢,我深表歉意。
我正在尝试在 Violentmonkey 中使用 jQuery 脚本从特定网站的侧边栏中删除一个元素。我试图操作的相关 HTML 看起来像这样(我已经删掉了废话):
<aside class="sidebar">
<section id="userpanel" class="actions-panel"> ... </section>
<section class="section ratings-histogram-chart"> ... </section>
</aside>
现在,我要删除的部分是带有“section ratings-histogram-chart”类的部分。
我可以使用以下方法删除整个侧边栏:
$( document ).ready( function() {
var sidebar = document.getElementsByClassName('sidebar')
$(sidebar).remove()
})
同样,我可以使用以下方法删除“用户面板”元素:
$( document ).ready( function() {
var sidebar = document.getElementsByClassName('actions-panel')
$(sidebar).remove()
})
但是,我不能将 getElementsByClassName 用于其他部分,因为它有两个类:“section”和“ ratings-histogram-chart”。
我尝试过:
$( document ).ready( function() {
var sidebar = document.querySelector('section,ratings-histogram-chart')
$(sidebar).remove()
})
但没有骰子。 有什么建议吗?
编辑:根据我尝试过的建议:
var sidebar = document.querySelector('section ratings-histogram-chart')
和
var sidebar = document.querySelector('section.ratings-histogram-chart')
到目前为止都没有工作。
解决方法
为什么要使用 document.querySelector
? Jquery 已经制作了一个用于选择类的 API,所以如果你打算这样做,就一路走下去。这是我的做法:
$(document).ready(function() {
// Hides the div in 3 seconds
setTimeout(function() {
$('.multiple.classes.to.hide').remove();
},3000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<div class="multiple classes to hide">I am a div with multiple classes that would hide in a few seconds,ish</div>
最重要的一点是,当您尝试选择多个类时,您不是通过使用空格来实现的,而是通过用句点(句号 [.])加入它们来实现的。无论是在 CSS、jQuery 的 API 中还是使用 document.querySelector。
希望这对您有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。