foreach相当于jquery中的php?

时间:2009-07-29 06:54:36

标签: php jquery foreach

在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'];?>");
}

在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'];?>");
 }

}

错误讯息:

语法错误  for(in Array)

有人可以帮帮我..

6 个答案:

答案 0 :(得分:43)

$.each功能类似。

它允许您使用回调函数迭代数组,您可以访问每个项目:

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


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

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

答案 1 :(得分:25)

如果你想迭代一个对象,我会推荐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);
});

答案 2 :(得分:5)

jQuery.each

答案 3 :(得分:4)

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

答案 4 :(得分:3)

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:vanilla for

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

Js#3:无限循环

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

答案 5 :(得分:0)

您可以查看此链接。 Javaascript For...in loop我认为更直接地回答了你的问题。