我们如何在VanillaJS中转换jQueryn $ li.find(' div.element:first')

时间:2017-08-21 20:18:42

标签: javascript jquery

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的工作方式不同。有人请建议任何更好的解决方案

1 个答案:

答案 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');