jQuery匹配hasClass类的一部分

dit*_*tto 31 javascript jquery class

我有几个div与"project [0-9]"类:

<div class="project1"></div>
<div class="project2"></div>
<div class="project3"></div>
<div class="project4"></div>
Run Code Online (Sandbox Code Playgroud)

我想检查元素是否有"project [0-9]"类.我有,.hasClass("project")但我坚持匹配数字.

任何的想法?

Ber*_*rgi 58

您可以使用startswith CSS3选择器来获取这些div:

$('div[class^="project"]')
Run Code Online (Sandbox Code Playgroud)

要检查一个特定元素,您可以使用.is(),而不是hasClass:

$el.is('[class^="project"]')
Run Code Online (Sandbox Code Playgroud)

要使用完全/project\d/正则表达式,您可以查看jQuery选择器正则表达式或使用

/(^|\s)project\d(\s|$)/.test($el.attr("class"))
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果`projectN`不是元素的第一个类名,则startwith select将不起作用,比如`class ="someclass project1"`.因此,在这种情况下应该使用最后一个正则表达式版本. (2认同)

Akh*_*ran 12

对你的HTML更好的方法是:我相信这些div有一些共同的属性.

<div class="project type1"></div>
<div class="project type2"></div>
<div class="project type3"></div>
<div class="project type4"></div>
Run Code Online (Sandbox Code Playgroud)

然后你可以使用它找到它们:

$('.project')
Run Code Online (Sandbox Code Playgroud)


mig*_*gli 8

$('div[class*="project"]')
Run Code Online (Sandbox Code Playgroud)

不会因为这样的事情而失败:

<div class="some-other-class project1"></div>
Run Code Online (Sandbox Code Playgroud)