Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript hasClass()以字符串开头_Javascript_Jquery_Css - Fatal编程技术网

Javascript hasClass()以字符串开头

Javascript hasClass()以字符串开头,javascript,jquery,css,Javascript,Jquery,Css,是否可能以及如何使用hasClass()搜索以指定字符串开头的类? 我想看看多个类,看看是否存在至少一个以字符串开头的类 string: "old" 这是可能的,并且您也能够进行包含或通配符搜索吗?选择器将是:[class^=old] 因此: $('[class^=old]') 语法: [attr^=vvv]=>选择所有具有属性的元素attr,其值以vvv开头 [attr$=vvv]=>选择所有具有属性的元素attr,其值以vvv结尾 [attr*=vvv]=>选择所有具有属性的元素att

是否可能以及如何使用
hasClass()
搜索以指定字符串开头的类?
我想看看多个类,看看是否存在至少一个以字符串开头的类

string: "old"

这是可能的,并且您也能够进行包含或通配符搜索吗?

选择器将是:
[class^=old]

因此:

$('[class^=old]')
语法:
  • [attr^=vvv]
    =>选择所有具有属性的元素
    attr
    ,其值以
    vvv
    开头

  • [attr$=vvv]
    =>选择所有具有属性的元素
    attr
    ,其值以
    vvv
    结尾

  • [attr*=vvv]
    =>选择所有具有属性的元素
    attr
    ,其值包含
    vvv

不是
hasClass
: 在您的情况下,
is
方法比
hasClass
更合适:

 if (element.is('[class^=old]')){


  }
而不是

 if (element.hasClass('[class^=old]')){


  }
JQuery插件: 然后:

if (element.hasClassStartsWith('old')){
     // do your staff
}

选择器将是:
[class^=old]

因此:

$('[class^=old]')
语法:
  • [attr^=vvv]
    =>选择所有具有属性的元素
    attr
    ,其值以
    vvv
    开头

  • [attr$=vvv]
    =>选择所有具有属性的元素
    attr
    ,其值以
    vvv
    结尾

  • [attr*=vvv]
    =>选择所有具有属性的元素
    attr
    ,其值包含
    vvv

不是
hasClass
: 在您的情况下,
is
方法比
hasClass
更合适:

 if (element.is('[class^=old]')){


  }
而不是

 if (element.hasClass('[class^=old]')){


  }
JQuery插件: 然后:

if (element.hasClassStartsWith('old')){
     // do your staff
}

基本上,这将需要一个两部分的检查。您可以运行选择器来查找包含单词的任何类

现在,我们将找到“旧”、“冷”、“大胆”。不能使用的原因始于,因为类可以是“foo old”,而不是以old开头

那么,除了可以循环并匹配正则表达式以查看类列表中是否有一个以它开头的单词外,还可以使用contains做些什么呢

var elems=$('[class*=“old”]')。过滤器(函数(){
返回$(this.attr(“class”).match(/(^\s)old/);
})。addClass(“拾取”)
.picked{背景色:黄色;}

古老的
旧asdf
富老asdf
寒冷的
老福
福老
福奥尔多

foo-ald
基本上需要两部分检查。您可以运行选择器来查找包含单词的任何类

现在,我们将找到“旧”、“冷”、“大胆”。不能使用的原因始于,因为类可以是“foo old”,而不是以old开头

那么,除了可以循环并匹配正则表达式以查看类列表中是否有一个以它开头的单词外,还可以使用contains做些什么呢

var elems=$('[class*=“old”]')。过滤器(函数(){
返回$(this.attr(“class”).match(/(^\s)old/);
})。addClass(“拾取”)
.picked{背景色:黄色;}

古老的
旧asdf
富老asdf
寒冷的
老福
福老
福奥尔多

foo-ald
提供您所做的…document.getElementsByClassName(“old”)。。。听起来更好的解决方案是使用多个类,这样就不必查看分部。但是您可以使用属性选择器,但不需要查找每个单独的类名并查看它的开头。例如
$(“*[class*='mystring']”)
@epascarello我需要查看部分,因为我使用了多个带前缀的类来提供您所做的工作…document.getElementsByClassName(“old”)。。。听起来更好的解决方案是使用多个类,这样就不必查看分部。但是您可以使用属性选择器,但不需要查找每个单独的类名并查看它的开头。例如
$(“*[class*='mystring']”)
@epascarello我需要查看部分,因为我使用的是带前缀的多个类。这有帮助吗@AgentIt非常有用,但是当我使用is(“[class^=old]”)时,我得到了false。。。is(“[class*=old]”将如预期的那样变为true。可能是([class=])没有单独查看每个类,而是将所有类作为一个字符串一起查看?而hasClass(selector)查看每个类以确定其中一个类是否为选择器?我在该对象上有多个类,并且几个可能的类可以具有该字符串前缀。这有帮助吗@AgentIt非常有用,但是当我使用is(“[class^=old]”)时,我得到了false。。。is(“[class*=old]”将如预期的那样变为true。可能是([class=])没有单独查看每个类,而是将所有类作为一个字符串一起查看?hasClass(selector)查看每个类以确定其中一个类是否为选择器?我在该对象上有多个类,并且几个可能的类可以具有该字符串前缀。