-2

我正在构建一个使用名为Chat.fetch();的函数的项目。它是一个异步函数,从服务器中提取字符串数组。这是一个 ajax 函数,为了项目的目的已经定义了,我只需要正确调用它。我们还有另一个名为 Chat.display() 的函数,它接受一个字符串并在控制台上以项目符号的形式显示它。现在这就是我所得到的:我收到一个错误,说无法读取未定义的属性长度。所以我猜想.length 对于 superArray 是未定义的吗?目标是创建此函数并将其用作 Chat.fetch() 的回调函数。你们知道为什么我会收到这个 .length 错误吗?我很困惑。谢谢!

    <!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script src="http://chatbuilder.hackreactor.com/ChatBuilder.js"></script>
  </head>
  <body>
    <script>


    Chat.guide.start();


    <h2>Borken Chat</h2>

    <input class="draft" type="text"/> <button class="send" disabled>send</button>



    <ul class="messages">

      <script>
    var list;
    var superArray=[];
    darray=function(superArray){
      var y=superArray.length;
      for(i=0;i<y;i++){
        Chat.display(x[i]);
      }
    }
    Chat.fetch(darray(list));
  </script>

    </ul>

  </body>

4

2 回答 2

0

这是一个使用 Ajax 的简单页面

<!DOCTYPE html>
<html>
 <head>
  <script>
   function loadXMLDoc()
   {
    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
    {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
      }
    }
    xmlhttp.open("GET","<<URL>>",true);
    xmlhttp.send();
  }
</script>
</head>
<body>

<div id="myDiv"><h2>Results will go here</h2></div>
<button type="button" onclick="loadXMLDoc()">Get Results</button>

</body>
</html>

看看 xmlHttp.responseText 在哪里使用?那就是你会得到你的字符串的地方。

于 2013-04-19T00:11:09.870 回答
0

我不知道你有什么代码,但基本的想法是这样的(使用 jQuery,不知道它是否在你的堆栈中)。这假设 Chat.fetch() 是同步的,否则您需要在完成时触发事件或使用承诺或其他东西。

messages = Chat.fetch();
for (i=0; i<messages.length; i++) {
      $('#chat-window').append( '<br>' + messages[i] );
}
于 2013-04-19T00:11:58.017 回答