2011-08-18 36 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); 
        } 
相關問題