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);
});
Ответ 3
Существует jQuery.each.
Ответ 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 Я думаю, что более прямой ответ на ваш вопрос.