我需要循环访问页面中的一些元素,然后对于每个元素,如果它有一个类,例如“C”,则执行某些操作.
$('#dialog li').each(function(){ if ($(this).hasClass("^C")){ //do something } }
它可能听起来很愚蠢,但是我应该在if子句上使用什么选择器/方法?
提前致谢.
解决方法
Carefull with $(‘#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">