无法使用JQuery从元素中删除类

时间:2018-05-15 作者:user3402248

我在用这个plugin 将JQuery添加到特定页面。我正在尝试删除span类。这是DOM的一部分

 <!--// Header \\\\-->

                    <div class="careerfy-subheader careerfy-subheader-with-bg"  style="background-image: url(\'http://www.sohodragontalent.com/wp-content/uploads/subheader-bg.jpg\');">
      <span class="careerfy-banner-transparent"  style="background-color: rgba(246,248,250,0.81) !important;"></span>
我正在尝试从父类“careerfy subheader careerfy subheader with bg”中删除名为“careerfy banner transparent”的类

这是我编写的JQuery代码,但由于某些原因,它不起作用。

jQuery(".careerfy-subheader careerfy-subheader-with-bg").removeClass("careerfy-banner-transparent");
在此问题上的任何帮助都将不胜感激。

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

.careerfy-subheader careerfy-subheader-with-bg 不是要从中删除类的元素的有效选择器。

首先,要基于两个类选择一个元素,您需要以下语法:

jQuery(\'.careerfy-subheader.careerfy-subheader-with-bg\')
请注意. 对于每个类,它们是附加的。这意味着“选择包含这两个类的元素”。

第二个问题是,这甚至不是您要删除的元素。这门课是在span 元素,因此您选择的元素应为:

jQuery(\'.careerfy-subheader.careerfy-subheader-with-bg .careerfy-banner-transparent\')
这将选择具有类的元素careerfy-banner-transparent 内部具有careerfy-subheader careerfy-subheader-with-bg 课程。两个类都没有必要,除非只使用其中一个会选择另一个您不想选择的元素。

然而,看起来您实际上想要删除的是元素,而不是类。removeClass 将更改:

<span class="careerfy-banner-transparent"  style="background-color: rgba(246,248,250,0.81) !important;"></span>
进入:

<span style="background-color: rgba(246,248,250,0.81) !important;"></span>
所以span 将仍然存在。

如果要完全删除元素,需要选择span 元素和用途remove(), 不removeClass():

jQuery(\'.careerfy-subheader.careerfy-subheader-with-bg .careerfy-banner-transparent\').remove();

结束