jquery-selectors - jQuery 检查元素是否具有以某个字符串开头的类

标签 jquery-selectors

我需要遍历页面中的一些元素,然后,对于每个元素,如果它有一个以“C”开头的类,则执行某些操作。

$('#dialog li').each(function(){
    if ($(this).hasClass("^C")){
         //do something
    }
}

听起来可能很傻,但是我应该在 if 子句上使用什么选择器/方法?

最佳答案

小心用 $('#dialog li[class^="C"]') !它只会匹配类属性以“C”开头的元素,而不匹配类以 C 开头的元素。例如,它不会匹配 <li class="foo Clown"> .

AFAIK 你想要的东西是不可能单独使用 jQuery 的。您需要遍历类并分别检查每个类。就像是:

$('#dialog li').filter(function(){
  var classes = this.className.split(/\s/);
  for (var i = 0, len = classes.length; i < len; i++) 
    if (/^C/.test(classes[i])) return true;
  return false;
}).each( ... )

或者,您应该考虑改变您的方法,并为所有元素提供一个额外的类并以此进行过滤。这有一个好处,它也可以在 CSS 中使用:
<li class="Clown Clown-Funny">
<li class="Clown Clown-Sad">
<li class="Clown Clown-Rodeo">

关于jquery-selectors - jQuery 检查元素是否具有以某个字符串开头的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2668275/

相关文章:

JQuery 选择器 not() 与所选元素的子元素

javascript - 如何在其类上使用 jQuery 获取选择的所有选项,而不是 ID?

javascript - 如何使用 jQuery 删除 UL 中的 HTML 元素?

javascript - 如何获取光标下的文字?

javascript - 为什么我的大多数 jquery 函数在将消息添加到现有消息列表后停止工作?

jquery - 如何找到最短的选择器

jquery - 修复了滚动条上的标题在 ie8 中不起作用的问题

javascript - 如果一个 div 包含所有指定元素,则选择该 div

javascript - jquery 在 IE 中读取负数时返回 0

javascript - Jquery 选择器不带通配符