使用cash-dom检测option是否选中时报错':selected'不是有效选择器
错误原因
cash-dom的is()方法底层直接调用原生Element.matches()接口实现,:selected是jQuery自定义的伪类选择器,不属于W3C标准CSS选择器范畴,原生浏览器的选择器匹配逻辑不支持该伪类,因此抛出选择器无效的报错。
修复方案
优先直接读取option DOM元素的内置selected属性获取选中状态,判断逻辑性能更高、状态更新更准确:
const options = cash('option'); options.each((i, el) => { console.log(i, cash(el)); console.info(el.selected) })
注意:不要尝试使用
is('[selected]')替代,该属性选择器仅能匹配HTML初始化时设置的selected属性,无法响应后续用户交互或JS修改产生的选中状态变化,判断结果会出现偏差。
内容的提问来源于stack exchange,提问作者Pejman
相关产品推荐
相关产品推荐

