【问题标题】:JQuery remove div class [duplicate]JQuery删除div类[重复]
【发布时间】:2013-12-18 08:11:38
【问题描述】:

我的 html 中有这个,我想删除带有 ad spf-nolink 类的 div

<div class="ad spf-nolink">
<ol id="search-results" class="result-list context-data-container">
<div class="ad spf-nolink">

我尝试这样做:

var adElem = $('#ad spf-nolink');
if (adElem == null) {
    alert('1');
} else {
    $("#ad spf-nolink").removeClass();

    alert('3');
}

还有 2 个divs 还在,你知道可能是什么问题吗?

【问题讨论】:

  • 您的 HTML 无效。
  • 删除类与删除元素不同。你要哪个?
  • 没有元素有 pyv-afc-ads-container 类,为什么你要为 ad 类使用 id 选择器
  • 仅供参考,要检查元素是否存在,请检查 jQuery 超集 DOM 对象的长度属性,如下所示 if(adElem.length)...
  • @isherwood 我想删除带有广告 spf-nolink 类的两个 div

标签: javascript jquery html


【解决方案1】:

你的选择器错了。

var adElem = $('.ad.spf-nolink').removeClass('ClassName');

. class-selector

# id-selector

.removeClass()

【讨论】:

    【解决方案2】:

    你想要的是:

    $('.ad.spf-nolink').removeClass('pyv-afc-ads-container spf-nolink');
    

    【讨论】:

    • removeclass 不需要两个声明 ...
    • 感谢@Danko,已修复。
    【解决方案3】:

    你对 jQuery 选择器的使用有点困惑……但是

    var adElem = $('.ad.spf-nolink');
    if (adElem.length > 0) {
      //element exist remove class "spf-nolink"
      adElem.removeClass("spf-nolink");
    } else {
      //if you need something in case of no element with ad class is also spf-nolink
    }
    

    您可以使用正确的选择器删除“pyv-afc-ads-container”类...

    【讨论】:

      【解决方案4】:

      我想你想要:

      $('.ad.spf-nolink').remove();
      

      或者,如果您只想删除 div 类,您可以这样做:

      $('.ad.spf-nolink').removeClass('ad');
      $('.ad.spf-nolink').removeClass('spf-nolink');
      

      【讨论】: