querySelectorAll()是否接受('div.element:first')
这种类型的参数?我需要在VanillaJS中转换下面的jQuery方法
jQUery:
$li = $(this)
$li.find('div.element:first')
香草:
var li = event.target;
li.querySelectorAll('div.element:first');
但是Vanilla脚本与jQuery的工作方式不同。有人请建议任何更好的解决方案
答案 0 :(得分:11)
jQuery的:first
将匹配元素的集合减少到集合中的第一个元素。
换句话说,你得到第一个匹配div.element
的元素。
要在普通的javascript中执行相同的操作,您只需拨打querySelector
而不使用All
部分
var first = li.querySelector('div.element');
因为querySelector
将返回与指定选择器匹配的第一个元素
这当然只有在li
是单个元素时才有效,querySelector
不能像jQuery find()
那样对集合起作用。
如果li
不是单个元素,则必须进行迭代,但由于您只是在寻找第一个元素,所以您可以这样做
var first = li[0].querySelector('div.element');