0

我有这个 AJAX 函数,用于使用 Java servlet 中的用户名检索 XML。我在这里解析用户名并将它们发送到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
var userList = new Array();

每次调用函数时都重新初始化用户列表,这似乎不对

于 2012-12-05T17:25:09.037 回答
0

您需要 .each 中的键和值吗?

$(data).find("friend").each(function (k,v) {
                addToUserList($(v).find("username").text());
            });
于 2012-12-05T17:22:19.663 回答