如何在jQuery中编写这个JavaScript迭代函数?
How can I write this JavaScript iteration function in jQuery?
我有一个JS函数,返回的列表"。元素,循环遍历选择器,并调用另一个函数。JavaScript函数运行得很好,但我想把它转换成jQuery。下面是JS函数,可以正常工作:
var videos = document.querySelectorAll(".youtube");
for (var i = 0; i < videos.length; i++) {
getVideos(videos[i]);
}
现在我试着把它翻译成jQuery:
$(".youtube").each(function(i, youtube){
getVideos(youtube[i]);
});
这行不通。这是一个JSFiddle: http://jsfiddle.net/k3y3yvxq/2/
在jQuery中不需要索引each(), youtube
指向元素
.each()方法的目的是使DOM循环构造更简洁,更不容易出错。当被调用时,它遍历作为jQuery对象一部分的DOM元素。每次回调运行时,它都会从0开始传递当前循环迭代。更重要的是,回调是在当前DOM元素的上下文中触发的,因此关键字this指的是该元素。(摘自https://api.jquery.com/each/)
$(".youtube").each(function(i, youtube){
getVideos(youtube);
// or getVideos(this);
});
你也可以这样做:
$(".youtube").get().forEach(getVideos);
…前提是getVideos
只查看它的第一个参数,而不是后面的参数,因为它将被调用三个参数:元素,它的索引和我们正在循环的数组(这是.get()
给我们的,一个真正的JavaScript数组)。
或者"less jQuery"方式:
Array.prototype.forEach.call(document.querySelectorAll(".youtube"), getVideos);
我应该注意到forEach
是ES5+(例如,大约2009年),所以IE8没有它,因为IE8是在ES5规范最终确定之前发布的。所有现代浏览器都可以。
相关文章:
- 专家Javascript迭代Thymelaf
- JavaScript迭代程序
- 使用Javascript迭代同级的最快方法是什么
- 是否可以通过Javascript迭代stdin中的每个单词
- if语句中的javascript迭代
- 如何使用 D3 javascript 迭代 JSON 文件中的数据
- 使用 Javascript 迭代以 HTML 显示多个图像
- JavaScript——迭代一系列问题(数组/对象)
- Javascript迭代问题
- 如何循环来自生成器的JavaScript迭代器
- 如何使用Javascript迭代DAO字段集合
- 用javascript迭代Django模板变量,通过不断变化的索引进行访问
- 如何在不使用javascript迭代的情况下找到数组中对象的索引
- Javascript-迭代嵌套对象,获取值和链式键
- 将json对象转换为数组,使用Javascript迭代ng-repeat
- 如何在jQuery中编写这个JavaScript迭代函数?
- 我如何使用JavaScript迭代这个对象
- Javascript迭代-颠倒顺序
- Javascript迭代器建议
- 在chrome控制台重新加载后保持Javascript迭代