为什么将el.querySelectorAll与以'>'开头的选择器一起使用是非法的?什么是简单的替代解决方案?
var el = document.createElement('div');
el.querySelector('> div');
上面的代码将产生DOM异常12。解决方案必须避免使用jquery,它确实支持此操作且没有错误。可以提供Zepto解决方案,因为Zepto不支持此解决方案。
当选择不以“>”是有效的:
el.querySelectorAll('div > div');
最佳答案
document.querySelectorAll
需要一个字符串,其中包含一个或多个用逗号分隔的CSS选择器。'> div'
不是有效的CSS选择器。>
是一个子组合器。 child 组合器描述了两个元素之间的童年关系。'> div'
只有一个元素。' div >'
也不起作用。
有关更多信息,请参见
关于javascript - 为什么此表达式在querySelectorAll中是非法的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17957647/