2013-04-23 181 views
0

我試圖將此數組添加到DOM,每個字符串元素作爲無序列表的一部分。下面我試着設置消息[i] =我想追加到列表的數組的元素,但它似乎沒有工作。 Fetch new是一個回調函數,它在輸入FYI時獲取一串字符串。基本上我試圖在ul的底部顯示該數組中的每個元素。 ul class =「messages」fyi。我分配變量值的方式有什麼問題嗎?添加一個數組到DOM與每個元素作爲li

function fetchNew() { 
     var PrintChat = function (Chat_Messages) { 
     var y = Chat_Messages.length; 
     for (i = 0; i < y; i++) { 

      var message[i] = $('<li>Chat_Messages[i]<li>'); 
      $('.messages').append(message[i]); 

     } 
    } 

回答

1

我猜這是字面上輸出Chat_Messages[i]反覆?

你必須告訴JavaScript,它是一個要連接的變量。試試這個:

$(".messages").append("<li>"+Chat_Messages[i]+"</li>"); 

請注意,爲了安全起見,你應該確保該消息被正確轉義,或更好,但使用像createTextNode(Chat_Messages[i])本地DOM方法來保護您的網站從XSS攻擊。

+0

這是真棒感謝的人! – HectorOfTroy407 2013-04-23 18:43:53

0

如果fetchNew是一個回調得到的字符串數組,你實際上是複雜的太多,簡單的方法是,像這樣:

function fetchNew(myArray) {       // receive the array as a parameter. 
    var length = myArray.length;      // Cache the length of array 
    for (i = 0; i < length; i++) {      // loop through the array. 
     var element = $('<li>' + myArray[i] + '<li>'); // concatenate the current value inside an LI and create a dom element. 
     $('.messages').append(element);    // Add element to the parent container 
    } 
} 
相關問題