Foreach эквивалент php в jquery?

Есть ли код foreach в JQuery, как в PHP? У меня есть код в php, например

<?php foreach ($viewfields as $viewfield): ?>       
if("<?php echo $viewfield['Attribute']['required'];?>"=='true'){
       $("<span class='req'><em> * </em></span>").appendTo("#fb_contentarea_col1down21 #label<?php echo $viewfield['Attribute']['sequence_no']?>");
   }


   if(<?=$viewfield['Attribute']['type'];?>=='text'||<?=$viewfield['Attribute']['type'];?>=='date'||<?=$viewfield['Attribute']['type'];?>=='number'){ 
       $("<input id=input<?=$viewfield['Attribute']['sequence_no'];?> type= 'text' style= 'width:<?=$viewfield['Attribute']['size'];?>px' data-attr=<?=$viewfield['Attribute']['type'];?> ></input><br>").appendTo("#fb_contentarea_col1down21 #<?=$viewfield['Attribute']['sequence_no'];?>");
   }


   else if(<?=$viewfield['Attribute']['type'];?>=='textarea'){
       $("<textarea style= 'width:<?=$viewfield['Attribute']['size'];?>px' data-attr=<?=$viewfield['Attribute']['type'];?> id=input<?=$viewfield['Attribute']['sequence_no'];?>></textarea><br>").appendTo("#fb_contentarea_col1down21 #<?=$viewfield['Attribute']['sequence_no'];?>");
}

Есть ли какой-либо эквивалент foreach в JQuery? Как я могу выполнить эту же функциональность в jQuery?

ИЗМЕНИТЬ 1:

Я думал, что это сработало, но я получаю сообщение об ошибке. Код и сообщение об ошибке приведены ниже.

for(<?=$viewfield;?> in <?=$viewfields;?>){

 if("<?=$viewfield['Attribute']['required'];?>"=='true'){
            $("<span class='req'><em> * </em></span>").appendTo("#fb_contentarea_col1down21 #label<?php echo $viewfield['Attribute']['sequence_no']?>");
 }

 if(<?=$viewfield['Attribute']['type'];?>=='text'||<?=$viewfield['Attribute']['type'];?>=='date'||<?=$viewfield['Attribute']['type'];?>=='number'){ 
            $("<input id=input<?=$viewfield['Attribute']['sequence_no'];?> type= 'text' style= 'width:<?=$viewfield['Attribute']['size'];?>px' data-attr=<?=$viewfield['Attribute']['type'];?> ></input><br>").appendTo("#fb_contentarea_col1down21 #<?=$viewfield['Attribute']['sequence_no'];?>");
 }

 else if(<?=$viewfield['Attribute']['type'];?>=='textarea'){
            $("<textarea style= 'width:<?=$viewfield['Attribute']['size'];?>px' data-attr=<?=$viewfield['Attribute']['type'];?> id=input<?=$viewfield['Attribute']['sequence_no'];?>></textarea><br>").appendTo("#fb_contentarea_col1down21 #<?=$viewfield['Attribute']['sequence_no'];?>");
 }

}

Сообщение об ошибке:

Синтаксическая ошибка  для (в массиве)

Может кто-то мне помочь..

Ответы

Ответ 1

$. каждая функция похожа.

Он позволяет выполнять итерацию массивов с помощью функции обратного вызова, где у вас есть доступ к каждому элементу:

var arr = [ "one", "two", "three", "four", "five" ];


$.each(arr, function(index, value) {
  // work with value
});

Может быть полезно знать, если вы хотите разбить цикл, вы можете сделать это с помощью return false; или если вы хотите пропустить только одну итерацию (продолжение), вы return true;

Ответ 2

Если вы хотите итерации объекта, я бы рекомендовал вариант JavaScript:

for (var key in obj) {
    alert(key + ': ' + obj[key]);
}

Вы также можете перебирать объекты в jQuery следующим образом:
Примечание! Выполнение этого довольно бессмысленно, если вы не считаете, что этот синтаксис намного проще поддерживать. Синтаксис ниже имеет гораздо больше накладных расходов, чем выше, стандартный JavaScript, for-loop.

$.each(obj, function (key, value) {
    alert(key + ': ' + value);
});

Чтобы итерации массивов, так вы делаете это в стандартном JavaScript (предполагая, что arr - это массив):

for (var i = 0, l = arr.length; i < l; i++) {
    alert(i + ': ' + arr[i]);
}

Чтобы сделать это в jQuery, вы можете сделать это следующим образом:

$.each(arr, function (index, value) {
    alert(index + ': ' + value);
});

Ответ 4

Javascript поддерживает синтаксис for(data in data_array). jQuery также имеет функцию $.each(как уже упоминалось)

Ответ 5

JQuery работает с селекторами:

$('a').each(function() {
    $(this).click(function(e) {
       e.preventDefault()
       var href = this.href;
       open(href);
    });
    // operate on the anchor node.
});

jQuery direct $.each:

var a = ['one', 'two'];

$.each(a, function() {
    alert(this)
});

JS: Vanilla for loop

 for ( var i = 0, len = 10; i<l; ++i ) {
    alert(i)
 }

JS # 2: ваниль для

 var humanLimbs = ['arms', 'legs'];
 for ( var limb in humanLimbs ) {
     if ( humanLimbs.hasOwnProperty(limb) ) {
        alert( limb )
     }
 }

Js # 3: бесконечный цикл

for (;;) { alert(1) } // dont try this :p

Ответ 6

Вы можете проверить эту ссылку. Javaascript For... in loop Я думаю, что более прямой ответ на ваш вопрос.