【问题标题】:Javascript .length and has class difference?Javascript .length 和类有区别吗?
【发布时间】:2013-11-20 02:27:44
【问题描述】:

我正在尝试通过在切换按钮中应用来测试两者之间的区别(更改文本颜色和第一次单击并在第二次单击时反转)

http://codepen.io/vincentccw/pen/qhyBL

这行得通:

if($('.changeC').length)
{
    $("div").removeClass("changeC");//reset
}else{
        $("div").addClass("changeC");
    }

但不是这个:

if($('div').hasClass(".changeC"))
{
    $("div").removeClass("changeC");//reset
}else{
        $("div").addClass("changeC");
    }

为什么会这样?

【问题讨论】:

  • 你应该看看toggleClass

标签: javascript jquery button toggle


【解决方案1】:

只需要从hasClass 的参数中删除.,因为它需要类名而不是选择器。

使用

$('div').hasClass("changeC");

或者使用选择器的替代方法是使用.is

$('div').is(".changeC");

此外,您可以通过以下方式实现:

$("div").toggleClass("changeC");

当然,在您的实时场景中,您可能希望更具体地确定要将此操作定位到哪个 div,因为 div 是一个过于通用的选择器,在这种情况下,您有多个 div 类为 changeC (在您的第一个 sn-p 中)不会提供太多服务,并且如果长度返回 0,也可能会将该类添加到非预期的 div 中。

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2012-04-26
    • 1970-01-01
    • 2016-04-07
    相关资源
    最近更新 更多