Есть ли код 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'];?>"); }
}
Сообщение об ошибке:
синтаксическая ошибка для (в массиве)
Кто-нибудь может мне помочь..
Функция $ .each аналогична.
Он позволяет выполнять итерацию массивов с помощью функции обратного вызова, где у вас есть доступ к каждому элементу:
var arr = [ "one", "two", "three", "four", "five" ]; $.each(arr, function(index, value) { // work with value });
Может быть, полезно знать, если вы хотите разбить цикл, вы можете сделать это с return false;
или если вы хотите пропустить только одну итерацию (продолжение), вы return true;
Если вы хотите итерировать объект, я бы рекомендовал вариант JavaScript:
for (var key in obj) { alert(key + ': ' + obj[key]); }
Вы также можете перебирать объекты в jQuery следующим образом:
Заметка! Выполнение этого довольно бессмысленно, если вы не считаете, что этот синтаксис намного проще поддерживать. Синтаксис ниже имеет гораздо больше накладных расходов, чем выше, стандартный JavaScript для цикла.
$.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); });
Существует jQuery.each .
Javascript поддерживает синтаксис for(data in data_array)
. jQuery также имеет функцию $ .each (как уже упоминалось)
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: Ваниль для петли
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
Вы можете проверить эту ссылку. Javaascript For … in loop Я думаю, что более прямой ответ на ваш вопрос.