0

各文字列要素を順不同リストの一部として、この配列を DOM に追加しようとしています。以下では、リストに追加する配列の要素を message[i] = に設定しようとしていますが、機能していないようです。Fetch new は、入力情報として文字列の配列を取得するコールバック関数です。基本的に、その配列の各要素をulの下部に表示しようとしています。ul class="messages" 参考までに。変数値を割り当てる方法に何か問題がありますか?

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

        }
    }
4

2 に答える 2

1

文字通りChat_Messages[i]繰り返し出力していると思いますか?

連結する変数であることを JavaScript に伝える必要があります。これを試して:

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

安全上の理由から、メッセージが適切にエスケープされていることを確認するかcreateTextNode(Chat_Messages[i])、サイトを XSS 攻撃から保護するなどのネイティブ DOM メソッドを使用することをお勧めします。

于 2013-04-23T18:39:01.767 に答える
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
    }
}
于 2013-04-23T18:39:40.040 に答える