jQuery's .each() in javascript

jQuery's .each() in javascript

本文关键字:in javascript each jQuery      更新时间:2023-09-26

做这样的事情的替代方法是什么

$(".myElement").each(function(){ 
    //function
});

用简单的Javascript?

这将迭代当前文档中的所有div。你可以替换document.getElementsByClassName('someclass')等,并用它们的attributesvalues 做一些事情

var elements = document.getElementsByTagName('div');
for (var i = 0; i < elements.length; i++) {
    doSomething(elements[i]);
}

这是jsfiddle:http://jsfiddle.net/allenski/p7w5btLa/

$(#myElement)

您正在尝试对id选择器进行迭代ID在HTML页面中必须是唯一的。

如果是要迭代的class or element标记,则可以使用for循环。

var $elems = $('.someClass');
for(var i=0; i< $elems.length; i++ ) {
     // $elems[i] --> Gives you a `DOM` element
     // $elems.eq(i) --> Gives you a `jQuery` object
}

香草Javascript

var elems = document.getElementsByClassName('someClass');
for(var i=0;i< elems.length;i ++) {
    elem[i] // Based on index
}

getElementsByTagName,如果您想在特定标签上进行迭代。

getElementsByName-根据name属性获取元素。

您还可以使用document.querySelectorAll来获取对象列表并对其进行迭代。

var elems = document.querySelectorAll('.someClass')
  for(var i=0; i<elems.length; i++) {
    elems[i] // Give you DOM object
  }

每个函数的替代方法有两种:

设置

var $all = $('*');
var len = $all.length;

1

while(--len){
   // use $($all[len]); for jQuery obj
   var elem = $all[len];
   doWork(elem);
}

2

//reset len for next loop
len = $all.length;
do {
   var $elem = $all.filter(':eq('+ --len + ')');
   doWork($elem);
} while (len);
var el = $(something);
for (var i = 0; i < el.length; i++) {
    // do something with el[i] or more often with $(el[i])
}

el是伪数组(或类似数组的Object),其具有length和在范围0...length-1中可由[]运算符访问的元素。所以你可以做el[0]el[1]等,但请记住,el元素不是jquery"对象",通常它们是DOM元素,所以你不能做el[0].text("Hello")。与each方法一样,您必须执行$(el[0]).text("Hello");

这样做甚至是错误的:

for (var i = 0; i < $(something).length; i++) {
    // do something with el[i] or more often with $(el[i])
}

因为以这种方式CCD_ 21将在每个周期被重新计算。

您必须使用for循环。看看http://www.w3schools.com/js/js_loop_for.asp