在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)
有人可以帮帮我..
答案 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)
答案 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我认为更直接地回答了你的问题。