2011-08-18 35 views
0

我可以在jQuery代码中使用原生javascript for循环吗?我有一个构造,其中$.each似乎不可行。我怎么能在这种情况下循环?我可以在jQuery代码中使用原生JavaScript for循环吗?

for循环内的代码不起作用。任何意见,将不胜感激。

if (item.relate){ 
    $(prodHeading).append(item.name); 
    if (item.image) {$(prodContent).append(item.image);} 
    if (item.description) { 
     $(prodContentText).append(item.description); 
     $(prodContent).append(prodContentText); 
    } 
    $(prodBox).append(prodHeading); 
    $(prodBox).append(prodContent); 

    //going to look for other attached items 

    for (j=0; j<10; j++){ 
     var prodBox = $(document.createElement('div')).attr('class','productBox'); 
     var prodHeading = $(document.createElement('div')).attr('class','productBoxHeading'); 
     var prodContent = $(document.createElement('div')).attr('class','productBoxContent'); 
     var prodContentText = $(document.createElement('div')).attr('class','text'); 

     if ('item.image'+j) {$(prodContent).append(item.image);} 
     if ('item.description'+j) { 
      $(prodContentText).append(item.description); 
      $(prodContent).append(prodContentText); 
     } 
     $(prodBox).append(prodHeading); 
     $(prodBox).append(prodContent); 
    } 
} 
+0

你想循环什么? – red

+1

难道你不认为你在j = 0时遗漏了一个var吗? (var j = 0; j <10; j ++ = –

+0

)你是否收到任何错误?循环本身是标准的... – minikomi

回答

1

首先,

for (j=0; j<10; j++){ 

应该使用声明的变量:

for (var j=0; j<10; j++){ 

其次,

if ('item.image'+j) { 

并没有太大的意义。每个这样的字符串都会通过if条件。如果您正在查看某个元素是否存在,请使用:

if ($('item.image'+j).length) { 
+0

('item.image'+ j)实际上调用了一个json元素。如果我想切换所有的item.image(0-9)?? – amit

+1

@amit:你现在正在组合字符串,如果你想访问一个对象的动态属性,你可以使用'item ['image'+ j]',如果'j'等于'0',就等于'item.image0'等等。 – pimvdb

0

是的,你可以使用常规的JavaScript与JQuery。

这是if语句的意思吗?

if ('item.description'+j) 

没有比较的情况发生,所以它会一直如此。

0
for (var j=0; j<10; j++){ 
        var prodBox = $(document.createElement('div')).attr('class','productBox'); 
        var prodHeading = $("<div/>",{class:'productBoxHeading'});  
        var prodContent = $("<div/>",{class:'productBoxContent'}); 
        var prodContentText = $("<div/>",{class:'text'}); 


        if (item.image+j) {prodContent.append(item.image);} 
        if (item.description+j) { 
         prodContentText.append(item.description); 
         prodContent.append(prodContentText); 
         } 
        prodBox.append(prodHeading); 
        prodBox.append(prodContent); 
        } 
相关问题