【问题标题】:jQuery Remove CSS Class from all Descendants at oncejQuery 一次从所有后代中删除 CSS 类
【发布时间】:2009-09-22 22:24:35
【问题描述】:

我可以一次从一个元素中的所有 XYZ 元素中删除一个特定的 CSS 类吗?

示例:从我的搜索 div 中的所有<a> anchors 中删除 CSS 类 active

如果有,怎么做?

【问题讨论】:

    标签: javascript jquery jquery-selectors


    【解决方案1】:
    $("#mydiv a").removeClass("active");
    

    【讨论】:

    • 我使用了这个代码:$("div").remove(".com_blog > .blog_post_detail");是否可以对其进行调整,以便我可以添加另一个用于删除链接 (a) 的类?
    【解决方案2】:

    如果搜索是一个类:

    $("div.search a").removeClass("active");
    

    如果搜索是一个 ID:

    $("#search a").removeClass("active");
    

    【讨论】:

      【解决方案3】:

      是的。你这样做:

      $("div a .className").removeClass("className")
      

      或者,假设你只想在某个 div 上做,只要 div 设置了 id 属性,你可以这样做:

      $("#divIDValue a .className").removeClass("className")
      

      使用 jQuery 选择器,# 后面带有一些文本,它指的是对象(div、span、anchor 等),id 属性设置为该文本是什么。句点是指类名与句点之后的文本匹配的所有对象。如上所示,您可以嵌套选择器文本。所以在上面的例子中,发生了什么:

      示例 #1

      1. 查找所有 div
      2. 在所有 div 中查找所有锚点
      3. 从 #2 中查找所有具有类 .className 的锚

      示例 #2

      1. 找到id属性设置为“divIDValue”的div
      2. 在该 div 中查找所有锚标记
      3. 在该锚标记列表中查找与类名className 匹配的所有锚标记

      请记住,对于页面中的所有对象,只有一个对象可以具有任何特定的 id 值。因此,您可以将两个对象的id 设置为 'divIDValue' - 尽管您的页面可能看起来还不错,但 jQuery 只会找到带有id 的第一个项目。另一方面,类可以用于多个项目(您可能已经知道)。

      【讨论】:

        【解决方案4】:

        从任何可能的元素中删除类的更通用的解决方案。

        // I like to use find as I usually have my wrapper in a variable.
        $('#my-wrapper').find('.active').removeClass('active');
        

        或者

        $('#my-wrapper .active').removeClass('active');
        

        这将影响包装器中的所有元素:span、h3、div、li、td 等。使用 html 5 现在有超过 100 个可能的标签。

        【讨论】:

          猜你喜欢
          • 2010-11-28
          • 2015-06-27
          • 1970-01-01
          • 1970-01-01
          • 2012-01-08
          • 1970-01-01
          • 2011-05-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多