jquery 以字符串开头_jQuery检查元素是否有一个以某个字符串开头的类
6 个答案:答案 0 :(得分:16)小心$('#dialog li[class^="C"]')!它只匹配元素,其class属性以“C”开头,而不是以C开头的类。例如,它不匹配。AFAIK你想要的不仅仅是mit jQuery。您需要循环遍历类并分别检查每个类。类似的东西:$('#dialog li').filter(function(){var classes = this.className.s
6 个答案:
答案 0 :(得分:16)
小心$('#dialog li[class^="C"]')!它只匹配元素,其class属性以“C”开头,而不是以C开头的类。例如,它不匹配
。AFAIK你想要的不仅仅是mit 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中使用:
答案 1 :(得分:5)
$('#dialog li[class^="C"]').each(function() {
// do something
});
答案 2 :(得分:1)
我认为没有内置的选择器来测试以字符串开头的类。
有一个选择器可以测试属性是否以字符串开头,所以如果你知道你的元素只有一个类(或者总是以相关的类开头),你可以这样做:
$(this).is("class^='C'")
但是,如果您无法保证上述任何一种情况,则必须手动拆分并测试元素上定义的每个类,如here所述。
答案 3 :(得分:1)
您可以尝试该选择器。如果有两个或更多这样的课程,这将是有效的&#34; Clown foo doo&#34;和
你可以尝试这样的事情$('#dialog li[class*="C"]'),在这种情况下会选择包含&#34; C&#34;信,例如&#34; exCelence foo&#34;。
如果您有兴趣计算有多少课程以&#34; C&#34;无论他们的位置如何(无论他们是在开头,在中间还是在中间),你都可以尝试这样的事情:
$('#dialog li[class^="C"]').each(function() {
var classes = div.attr("class").split(" ");
var count = 0;
$.each(classes, function(i, v){ if(v.indexOf('C')!=-1) count++; });
if (count == 1) alert("It has one 'C' class");
if (count>1) alert("It more than one 'C' class");
}
答案 4 :(得分:0)
尝试$('#dialog li[class^="C"]')之类的内容
答案 5 :(得分:0)
对于比“以...开头”更详细的过滤器,您可以使用filter()功能:
$('#dialog li').filter( function() {
// return true for every element that matches your condition
return this.className.match(/^c/) != null;
}).each(function(){
//do something
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)