Py学习  »  Jquery

如何将经典JavaScript中的“for of”转换为jQuery?

Pepe • 4 年前 • 1910 次点击  

我对经典JavaScript不是很熟悉,那么这行代码在jQuery中会是什么样子呢?

const siemas = document.querySelectorAll('.slider');

for(const siema of siemas) {
    new Siema({
    selector: siema
});
}

const siemas = document.querySelectorAll('.slider');

…将只是(如果我是对的):

var siemas = $('.slider');

而这个。。。

for(const siema of siemas)

... 会变成这样:

$.each ???
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/132794
文章 [ 3 ]  |  最新文章 4 年前
Lajos Arpad
Reply   •   1 楼
Lajos Arpad    4 年前

对于of是一个广泛可用的循环,除了现在不推荐的IE之外,所有浏览器都支持它

$('slider').each(function() {
    //this is the 'current' slider element
    //$(this) is the jQuery object of the current slider
});

但增加对jQuery的依赖性并不是真正明智的做法,JS不再需要这种技术来支持它。相反,你可以简单地用你的。。在编写代码时,使用BabelJS将代码转换为ES5,以便IE能够处理它。 Example :

皈依者

var arr = [1, 2, 3];
for (let item of arr) {
    //do whatever with item
}

进入

"use strict";
var arr = [1, 2, 3];
for (var _i = 0, _arr = arr; _i < _arr.length; _i++) {
    //do whatever with item
    var item = _arr[_i];
}

所以,您可以实现myscript。js和使用Babel可以生成 ES5 版本,我们称之为myscript_ie.js。因此,加载页面时,可以检查浏览器是否为IE。如果不是,则可以加载普通脚本。否则,您可以加载IE版本。

提出这一具体建议的原因是。。of只是IE不支持的功能之一,这个答案旨在解决所有这些不兼容的问题,或者至少大大减少它们,并且超越了for的问题。。属于

Jian Zhong
Reply   •   2 楼
Jian Zhong    4 年前

在jquery中。

var siemas = $('.slider');
siemas.each(function(){
    // this represent current element
    new Siema({
        selector: this
    });
});
mplungjan
Reply   •   3 楼
mplungjan    4 年前

如果你有多个幻灯片放映

  • 对于与简单for循环的比较

    const sliders = document.querySelectorAll('.slider');
    for (let i=0;i<sliders.length;i++) {
      new Siema({
        selector: sliders[i]
      });
    }
    
  • 对于对forEach

对于IE不支持of,但可以使用forEach。forEach需要使用spread进行包装,因为IE也不支持HTML集合上的forEach

  [...document.querySelectorAll('.slider')].forEach(function() {
    new Siema({
      selector: this
    });
  })
  • 对于vs jQuery各自的

    $('.slider').each(function() {
      new Siema({
       selector: this
      })
    })
    
  • 也许(取决于你的html)你可以这样做

    const slideShow = new Siema({
      selector: '.slider'
    })