Что эквивалентно циклу for-each в jQuery? - PullRequest
3 голосов
/ 06 января 2011

Я недавно начал работать с jQuery, и мне было интересно, как бы я перебрал коллекцию (массив или список элементов) элементов и суммировал их содержимое.

Имеет ли jQuery что-то вроде цикла forмногие другие языки делают?

Будет ли простой способ реализовать это - если это нелегко сделать?

Ответы [ 3 ]

14 голосов
/ 06 января 2011

Что вам нужно, так это функция jQuery each(), которая позволит вам перебирать любые заданные поля и выполнять действие.

Использование:

var array = ["stack", "overflow"];
$.each(array, function() {
      // Perform actions here (this) will be your current item
});

Пример (суммирование массива целых чисел):

var array = [1, 2, 3, 4, 5];
var sum = 0;

$.each(array, function() {
  sum += (this);
});
alert(sum);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
5 голосов
/ 06 января 2011

$.each(function) и $(...).each(function) оба точно выполняют эквивалент цикла for-each, но фактическим эквивалентом JavaScript для каждого эквивалента является цикл for(... in ...).

for (variable in object)
{
    // code to be executed
}

http://www.w3schools.com/js/js_loop_for_in.asp

Это не зависит от jQuery, но, в конце концов, jQuery - это всего лишь библиотека JavaScript.:)

4 голосов
/ 06 января 2011

Массив см. В ответе Рионмонстера.Для всех предметов совпадает селектор:

$("a").each(function() {
   alert($(this).attr('href'));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...