Javascript 将$(元素)转换为香草JS
我试图在每次有人向他们的购物车添加商品时基本上都刷新元素 下面是函数的一个片段Javascript 将$(元素)转换为香草JS,javascript,jquery,ecmascript-6,refactoring,Javascript,Jquery,Ecmascript 6,Refactoring,我试图在每次有人向他们的购物车添加商品时基本上都刷新元素 下面是函数的一个片段 const elements = document.getElementsByClassName('foo-bar') for (const element of elements) { flashBackground($(element), '#bbbbbb'); } 所以我抓取dom元素,然后循环遍历它们并刷新它们的背景,这很有效,但我正在尝试将所有旧的JQuery代码重构到ES
const elements = document.getElementsByClassName('foo-bar')
for (const element of elements) {
flashBackground($(element), '#bbbbbb');
}
所以我抓取dom元素,然后循环遍历它们并刷新它们的背景,这很有效,但我正在尝试将所有旧的JQuery代码重构到ES6
因此,当我控制台log$(element)
时,我返回下面的对象
init [a.foo-bar, context: a.foo-bar]
如何在vanilla JS中获得等价的$(元素) 只需像这样删除$()
:
const elements = document.getElementsByClassName('foo-bar');
for (const element of elements) {
flashBackground(element, '#bbbbbb');
}
检查并运行以下代码片段,了解上述方法的实际示例:
const elements=document.getElementsByClassName('foo-bar');
for(元素的常量元素){
警报(element.innerHTML);
}
A
B
C
D
jQuery的$(查询)选择器实际上是对的抽象。与jQuery实现一样,querySelector()可以通过任何标准的CSS选择器用于目标节点。
我在一个非jquery对象上引用了.css,这破坏了函数
element.css(“背景”)代码>
GetElementsByCassName不返回数组或节点列表,而是返回HTML集合。如果我检查HTML集合的原型,您可以看到没有数组方法,而是Symbol(Symbol.iterator):ƒvalues()
,但除此之外,删除$()没有帮助,在发布之前尝试过:(@DenisSDujota但不管怎样,这两种方法都应该可以工作,正如我在答案中添加的演示片段所示。没有等效方法。$
返回jQuery对象。
function flashBackground(element, color) {
...SOME CODE HERE
//needed to be
getComputedStyle(element)["background"]