将数组添加到DOM,每个元素都作为li

时间:2013-04-23 18:35:37

标签: javascript dom

我正在尝试将此数组添加到DOM中,每个字符串元素都是无序列表的一部分。下面我尝试设置message [i] =我想要附加到列表中的数组的元素,但它似乎没有工作。 Fetch new是一个回调函数,它获取一个字符串数组,因为它是输入FYI。基本上我试图在ul的底部显示该数组中的每个元素。 ul class =“messages”fyi。我分配变量值的方式有问题吗?

   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]);

        }
    }

2 个答案:

答案 0 :(得分:1)

我猜它反复输出Chat_Messages[i]

你必须告诉JavaScript它是一个连接的变量。试试这个:

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

请注意,出于安全原因,您应确保正确转义邮件,或者更好地使用createTextNode(Chat_Messages[i])等原生DOM方法来保护您的网站免受XSS攻击。

答案 1 :(得分: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
    }
}