2016-03-22 99 views
0

我剛開始學習JQuery。我遇到了這個問題。我有兩個不同的陣列'好'和'壞'。每個陣列都有一定的信息。現在我試圖在JQuery對話框中顯示每個數組中的每個元素。我試圖打開每個元素的對話框並在一段時間後淡出。但是我只顯示最後一個元素。我嘗試改變延遲和淡出的時間,但無法到達那裏。 指引我正確的方向將不勝感激。 目前,我只是把每個消息從好和壞,並顯示在控制檯和個人對話。 我的代碼是通過JavaScript數組循環並顯示JQuery對話框中的每個元素

function show_message(type,index) { 
    switch(type) { 
     case "good" : 
jQuery("#good").children("#goody").each(function() { 
var goods = jQuery(this).text(); 
console.log(goods); 
jQuery(this).dialog().html(goods); 
}); 
break; 

case "bad" : 
jQuery("#bad").children("#baddy").each(function() { 
var bads = jQuery(this).text(); 
console.log(bads); 
jQuery(this).dialog().html(bads); 
}); 
break; 
    } 
} 

    var ar = <? echo $json ?>; 

     jQuery.each(ar, function (key, value) { 

      if (key === 'good' && ar.success.length !== 0) { 
       var count = ar.good.length; 
       for (var m = 0; m < count; m++) { 
        jQuery("#good").prepend('<div id= "goody">' + ar.good[m] + '</div>'); 
        show_message('good',m); 
       } 

      } else if (key === 'bad' && ar.bad.length !== 0) { 
       var counter = arr.bad.length; 
       for (var n = 0; n < counter; n++) { 
         jQuery("#bad").prepend('<div id="baddy">' + arr.error[n] + '</div>'); 
        show_message('bad',n); 
       } 
      } 
     }); 

回答

0

好像你必須改變這部分

var goods = jQuery(this).text(); 

因爲這是創建一個新的變量好/壞,並分配給每個迭代it.So你只有最後一個文本被分配。

你可以試試這個

function show_message(type,index) { 
var goods=""; // Added variable here 
var bads =""; // Added variable here 
    switch(type) { 
     case "good" : 
jQuery("#good").children("#goody").each(function() { 
goods+= jQuery(this).text(); //concatenating the string 
console.log(goods); 
jQuery(this).dialog().html(goods); 
}); 
break; 

case "bad" : 
jQuery("#bad").children("#baddy").each(function() { 
bads+= jQuery(this).text(); //concatenating the string 
console.log(bads); 
jQuery(this).dialog().html(bads); 
}); 
break; 
    } 
} 
+0

感謝您的快速回復。 Concat(+)拋出錯誤爲'unidentified token ='。如果我刪除+,它會顯示與以前相同的輸出。其實我試圖用每個消息元素打開和關閉對話框。提前致謝。 –

+0

@joey_tribbiani +&=之間有一個空格。它應該是+ =沒有任何空間。更新答案 – brk

+0

我的不好,我糾正了它。但它仍然在單個對話框中打開每條消息。提前致謝。 –

相關問題