jQuery追加[object HTMLInputElement]

时间:2012-12-05 17:17:37

标签: jquery xml ajax servlets

我有这个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>

2 个答案:

答案 0 :(得分:0)

您是否需要.each中的键和值?

$(data).find("friend").each(function (k,v) {
                addToUserList($(v).find("username").text());
            });

答案 1 :(得分:0)

var userList = new Array();

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