社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

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

Pepe • 3 年前 • 1388 次点击  

我对经典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
 
1388 次点击  
文章 [ 3 ]  |  最新文章 3 年前
Lajos Arpad
Reply   •   1 楼
Lajos Arpad    3 年前

对于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    3 年前

在jquery中。

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

如果你有多个幻灯片放映

  • 对于与简单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'
    })