我的javascript jquery中的错误在哪里?

时间:2015-08-28 15:07:59

标签: javascript jquery

我正在尝试编写这段代码来从php页面调用信息以显示在html页面上。希望我做对了,但是当我尝试在浏览器中打开它时,chrome会给我一个错误,即错过了paranthesis但是对于我的生活我找不到它。任何帮助将不胜感激!

 <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>Accounts</title>
       <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    </head>
    <body>
    <script>
    $(document).ready(function(){
        $('#info').onload = function() {
            var answer=$.get('account.php,' queryString, function(data) {
                $('#info').html(data);
            });
            var queryString="Hello, you are logged in as " + answer;
        };
    });
    </script>
      <form id="info">
      </form>
    </body>
    </html>

2 个答案:

答案 0 :(得分:4)

你在网址字符串

中有逗号
var answer = $.get('account.php,'
                          _____^____

把它放在外面,如

var answer = $.get('account.php', queryString, function (data) {
   $('#info').html(data);
});

并且错误将消失。

但正如@MarcB所说,

  

此代码永远不会工作。 $ .get()不返回ajax   数据。答案将是jqhxr对象,而不是你的任何价值   试图从服务器获取。

您需要修改代码,因为其中存在一些问题。

  • 首先,jquery中没有onload属性。它是一个javascript事件对象,使用如下: -

    window.onload=function(){// your logic here};
    
  • $.get()不会返回ajax数据。它将在回调函数中返回ajax数据。

  • 我上面已经提到的代码中的错字。

  • queryStringundefined,而您尝试将其传递给.get(),因为之后已宣布。

您可以执行以下操作: -

$.get('account.php', 'Guest', function(answer) {
    var queryString="Hello, you are logged in as " + answer;
    $('#info').html(queryString);
});

有关.get()方法的更多详细信息:$.get() jQuery API Documentation

答案 1 :(得分:4)

你有多个问题。

  • jQuery对象上没有onload属性:
  • $.get的返回值只是一个jQuery promise对象
  • 您在URL后面有一个缺少的逗号(您在url字符串中输入了错误字符)
  • 您在使用它之后设置queryString的值,但是根据之前操作的结果创建它...谈论无穷无尽的结!

您可以使用单个jQuery load()

替换所有功能
$(function(){
    $('#info').load('account.php');
});

注释:

  • $(function(){只是$(document).ready(function(){
  • 的便捷快捷方式
  • 为什么你期望两个返回值此时超出我的范围:)
  • 您的代码中未定义queryString变量,但如果需要,只需将参数附加到网址即可。