0

Javaサーブレットからユーザー名を使用してXMLを取得するためのこのAJAX関数があります。ここでユーザー名を解析してaddToUserList関数に送信し、そこでjQueryを追加します。しかし[Object HTMLInputElement]、リストに追加されるのはそれだけです。ブラウザコンソールでAJAX関数を実行すると、返されるXMLの最初の要素はですが[object HTMLInputElement]、その後にユーザー名があります。

function displayFriendList(){
    $.ajax({
        url : '/getFriendList?userid=' +userid,
        type : "POST",
        dataType: 'xml',
        success : function(data) { 
            $(data).find("friend").each(function () {
                addToUserList($(this).find("username").text());
            });
        },
    })
}

これがaddToUserList関数です

var userList = new Array();

function addToUserList(friend){

    var exists = false;

    for(var i=1; i<userList.length; i++){
        if(userList[i]==friend){
            exists = true;
            break;
        }
    }

    if(!exists){

        userList.push(friend);
        $('#userList').append("<a>"+friend+"</a></br>");

および返されたxmlの一部

<data>
<friend><username>[object HTMLInputElement]</username></friend>
<friend><username>asa</username></friend>
<friend><username>asda</username></friend>
<friend><username>cece</username></friend>
4

2 に答える 2

0

.each にキーと値が必要ですか?

$(data).find("friend").each(function (k,v) {
                addToUserList($(v).find("username").text());
            });
于 2012-12-05T17:22:19.663 に答える
0
var userList = new Array();

関数を呼び出すたびにユーザーリストを再初期化しますが、これは正しくないようです

于 2012-12-05T17:25:09.037 に答える