foreach在jquery中的php等价物?

q8l4jmvw  于 2022-11-28  发布在  jQuery
关注(0)|答案(5)|浏览(149)

在JQuery中有没有像PHP中一样的foreach代码?我有一个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'];?>");
}
<?php endforeach; ?>

在jQuery中有没有foreach的等价物?我如何在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'];?>");
  }
}

错误消息:
(在Array中)的语法错误
谁能帮帮我...

oyxsuwqo

oyxsuwqo1#

$.each函数与此类似。
它允许您使用回调函数迭代数组,您可以在其中访问每个项:

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

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

如果你想打破循环,你可以用return false;来做,或者如果你只想跳过一次迭代(继续),你可以用return true;来做

368yc8dk

368yc8dk2#

如果你想迭代一个对象,我推荐JavaScript变体:

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

您 * 也可以 * 像这样在jQuery中迭代对象:

**注意!**这样做是毫无意义的,除非你认为这种语法更容易维护。下面的语法比上面的标准JavaScript for循环有更多的开销。

$.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);
});
aurhwmvo

aurhwmvo4#

Javascript支持for(data in data_array)语法。jQuery也有一个$.each函数(如前所述)

yqlxgs2m

yqlxgs2m5#

在选择器上运行的Jquery:

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

jQuery直接$.each:

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

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

JS:Vanilla for循环

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

相关问题