JS调用querySelector传入li: last child参数报错是什么原因?
问题原因说明
你传入的选择器li: last child不符合CSS选择器语法规范,是报错的核心原因,具体有两处语法错误:
- 伪类标识冒号
:后不允许加空格:空格在CSS选择器中属于后代选择符,加空格后解析器会将: last child识别为li的后代元素的匹配规则,无法对应到合法的伪类定义 last-child是完整的伪类名称,两个单词之间不能加空格,拆分书写会被解析器判定为未知语法规则
修正方案
将注释行的代码修改为如下内容即可正常执行:
querySelection('li:last-child');
补充说明:如果你实际需求是匹配所有
li元素后代中的最后一个子元素,可以写成li :last-child(li和冒号之间加空格),这个写法是合法的后代选择器语法,和上面直接匹配最后一个li的逻辑有区别。
内容的提问来源于stack exchange,提问作者Sat_DL
相关产品推荐
相关产品推荐

