【问题标题】:jQuery appends [object HTMLInputElement]jQuery 追加 [object HTMLInputElement]
【发布时间】:2012-11-23 14:30:58
【问题描述】:

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

【问题讨论】:

  • 能贴出addToUserList的代码吗?
  • 能贴出XML sn-p的数据结构吗?
  • 不相关的问题:数组从 0 开始,所以 var i=1;for 中应该是 var i=0;
  • &lt;/br&gt; 应该是 &lt;br/&gt; 最后它在这里工作 jsfiddle.net/gaby/y3FdT/1

标签: jquery xml ajax servlets


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:
    var userList = new Array();
    

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

    【讨论】:

      猜你喜欢
      • 2015-09-28
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 2012-05-25
      • 2011-06-09
      • 2014-06-07
      相关资源
      最近更新 更多