1

我很困惑,我在执行这个脚本之前包含了 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>
4

3 回答 3

1

将您的代码移入内部$(document).ready并使用 .html 而不是 .text。

修改代码:jquery加载

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

注意:您应该提供函数引用来rq.onreadystatechange加载而不是函数的返回值。auswerten(localTarget, parameter);将 undefined 分配给onreadystatechange.

于 2012-10-13T18:06:30.883 回答
0

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

$(document).ready(function() {
    // Your code here
});
于 2012-10-13T18:04:35.040 回答
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函数,它具有跨浏览器规范化并且使用起来更快。

于 2012-10-13T18:16:37.010 回答