使用jQuery时出错

时间:2012-10-13 18:02:47

标签: jquery ajax

我很困惑,我在执行此脚本之前包含了jQuery 1.7库:

var rq;

function request(localTarget, parameter)
{
    $("#" + localTarget).text("Laden...");
    rq = new XMLHttpRequest();
    rq.open("GET", parameter, false);
    rq.onreadystatechange = auswerten(localTarget, parameter);
}

function auswerten(target, site)
{   
    if (rq.readyState == 4 && rq.status == 200) {
        $("#" + target).text(rq.responseText);
    } else {
        $("#" + target).text("Wert konnte nicht geladen werden");
    }
}

但文字不会显示,我尝试了一切,但它不起作用!

我要插入文本的Html代码如下:

<table width='100%' cellpadding='4' cellspacing='0'>
<tr>
  <td class='tablesubheader' width='50%'>Typ</td>
  <td class='tablesubheader' width='50%'>Wert</td>
</tr>

<tr>
<td>Geld heute</td>
<td><div id="money_today">Test</div></td>
</tr>

<tr>
<td>Geld Monat</td>
<td id="money_month"></td>
</tr>

<tr>
<td>Klicks heute</td>
<td id="klicks_today"></td>
</tr>

<tr>
<td>Klicks Monat</td>
<td id="klicks_month"></td>
</tr>

</table>
</td>

上面的方法如下所示:

<script type="text/javascript">
$(window).load(function() {
    request('money_today','<?php echo $link1; ?>');
    request('money_month','<?php echo $link2; ?>');
    request('klicks_today','<?php echo $link3; ?>');
    request('klicks_month','<?php echo $link4; ?>');
});
</script>

3 个答案:

答案 0 :(得分:1)

将您的代码移到$(document).ready内,并使用.html代替.text。

修改后的代码:jquery load

    function request(localTarget, parameter)
    {
        $("#" + localTarget).("Wert konnte nicht geladen werden");
        $("#" + localTarget).load(parameter);
    }

注意:你应该提供函数引用rq.onreadystatechange加载不返回函数值。 auswerten(localTarget, parameter);会将未定义的内容分配给onreadystatechange

答案 1 :(得分:0)

问题可能是您的代码在您尝试处理的元素存在于页面之前运行:即在加载页面之前。尝试将该代码放在以下内容中:

$(document).ready(function() {
    // Your code here
});

答案 2 :(得分:0)

rq.onreadystatechange = auswerten(localTarget, parameter);

你正在这里调用这个功能。你没有那样 - 浏览器应该在响应到达时调用函数:

// pass a function (that you don't call), which in turn calls `auswerten`
rq.onreadystatechange = function() {
  auswerten(localTarget, parameter);
};

无论如何,jQuery有一个内置的$.ajax函数,它具有跨浏览器规范化并且使用起来更快。