【问题标题】:remove class in jquery not functioning删除jQuery中的类不起作用
【发布时间】:2010-12-03 01:01:34
【问题描述】:

我的代码..

if($("#edButtonHTML").is(".active")) { $("#edButtonHTML").removeClass("active"); $("#edButtonPreview").addClass("active"); }

我需要从元素#edButtonHTML 中删除活动类并添加到#edButtonPreview 不幸的是无法正常工作...帮帮我

【问题讨论】:

  • 您确定满足您的 if 条件吗?输入 alter 语句来检查这个
  • 如果该类真的被删除了,您是否使用浏览器调试工具(如 firebug)检查过它?还是您检查了条件是否真的进入了 if 语句?

标签: jquery


【解决方案1】:

将您的 if 条件更改为 [假设 active 是您的班级名称

 if($("#edButtonHTML").hasClass("active"))
 {
    $("#edButtonHTML").removeClass("active");
    $("#edButtonPreview").addClass("active");
 }

【讨论】:

  • 它对我不起作用,即使我使用了 hasClass 我正在使用更新版本的 jquery。
  • 实际上 .hasClass("active") 是检查类的更好方法,但 .is(".active") 也可以。我认为这里的问题是,是否满足条件,或者是否在页面中找到了具有名为 active 的类的 edButtonHTML 元素。
  • 是的,这是真的。我的第一条评论是同一个问题
【解决方案2】:

不要认为 if 语句会解决。你总是可以在 if 中添加一个 alert 语句来检查。 另一个可以使用的选项是 hasClass("active"),所以

if ($("#edButtonHTML").hasClass("active") {
//go on

【讨论】:

    【解决方案3】:

    我的建议是做一些老派的方法。在 if 语句中放一条 alert 语句,看看它是否真的被引发了。

            alert("Before if condition.");
            if($("#edButtonHTML").is(".active"))
            {
                alert("Condition was satisfied");
                $("#edButtonHTML").removeClass("active");
                $("#edButtonPreview").addClass("active");
            }
    

    老派,但它适用于调试。但是您可以使用 firebug、IEDebugbar 或任何其他浏览器调试工具来检查您的 javascript 是否正常工作。

    【讨论】:

    • 它显示警报,但我没有删除课程。我听说 jquery 新版本有时使用 removeClass 无法正常运行
    • jQuery JavaScript 库 v1.4.2
    【解决方案4】:

    由于您没有发布您的 HTML,我们无法提供明确的答案。但有几点建议:

    1. 使用 JavaScript 调试器(我喜欢 Firebug)在“if”条件中放置一个断点,以查看代码执行是否到达那里。

    2. 如果您确信删除功能不起作用,请在 JQuery 论坛中发布问题,或在 JQuery 站点上提交错误报告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 2011-08-13
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多