jQuery拼接类名做选择器时报unrecognized expression错误如何解决?
错误原因
- 你在拼接选择器时额外添加了多余的外层双引号,导致传入
$()的表达式为带引号包裹的".a.1"格式,jQuery的Sizzle选择器引擎无法识别这种语法,因此抛出unrecognized expression错误。 - 补充说明:CSS3已支持数字开头的类名,主流版本的jQuery都可以正常识别,无需额外处理类名格式。
修复方案
方案1:直接移除多余引号即可
直接拼接类名选择器,不需要额外包裹引号:
lastClass = $(this).attr('class').split(' ').pop(); // 直接拼接选择器字符串 este = $(".a." + lastClass);
方案2:更稳妥的filter写法(适配含特殊字符的类名)
如果你的lastClass可能包含.、#等jQuery选择器预留的特殊字符,用filter方法筛选可以完全规避选择器语法错误:
lastClass = $(this).attr('class').split(' ').pop(); este = $(".a").filter(function() { return $(this).hasClass(lastClass); });
内容的提问来源于stack exchange,提问作者JibriI
相关产品推荐
相关产品推荐

