【问题标题】:Refreshing elements in partial with jQuery使用 jQuery 部分刷新元素
【发布时间】:2011-11-29 22:07:08
【问题描述】:

在我网站的某些地方,它会从用户手机接收“成绩”(葡萄牙语中的“notas”)。因此,当收到成绩时,必须在网站的这一点更新几个元素。我正在尝试使用 jQuery 进行刷新,但它不起作用。这就是我正在做的事情:

<script type="text/javascript">  
  $(document).ready(function() {
    setInterval(function() { refresh() }, 3000);
  });

  function refresh() {    
    $.get("notas", function(data) {
      var chart = $(data).find('img').attr('src');
      var conclusion = $(data).find("#conclusion").html();

      $("img").attr('src', char);
      $("#conclusion").html(conclusion);      
    });    
  }
</script>

因此,当添加成绩时,该 ajax get 返回一个 html 设置,因此我从该 html 字段中提取并尝试在当前页面上替换。但是浏览器没有任何反应,没有更新。

当我用“ctrl + U”可视化源代码时,(在添加新分级后)看起来不错,但它不是这样渲染的。我想我不会让浏览器知道服务器上发生了一些变化。

抱歉这篇大文章,有什么想法我错过了什么吗?

谢谢!

【问题讨论】:

  • 您是否尝试在刷新函数中添加一些调试内容,例如 console.log(chart),以确保您确实获得了预期的数据?

标签: jquery refresh partial


【解决方案1】:

您无法通过查看 HTML 文档的源代码来了解您使用 jQuery 所做的动态更改。你需要一个 DOM 检查工具,比如 FireBug 或 Chrome Dev。工具。

我注意到的一些事情:

  1. “notas”是服务器端脚本的正确 URL 吗?
  2. 您的服务器响应似乎有一个 ID 为“conclusion”的元素,并且您在页面上已有相同的 ID。这不好,每个 ID 都应该是唯一的。
  3. 你有这行:$("img").attr('src', char); 这似乎对 DOM 没有任何作用,你正在创建的图像没有被添加到页面的任何地方...

【讨论】:

  • 关于 DOM 检查是正确的,html 源代码不显示浏览器上发生的情况。我刚刚发现了浏览器 Web 控制台,可以找到您指出的那一行: $("img").attr('src', char);正在破坏我的脚本,因为正确的 var 名称是它的“chart”而不是“char”。所以,现在它工作正常!多谢!现在我喜欢浏览器 Web 控制台:D
  • @brunosm 您可以使用开发人员工具做很多有用的事情,例如发送的监视请求、在页面加载时检查正在下载的资产瀑布、实时查看 cookie 是什么制作/更改/删除,检查 DOM,使用console.log() 记录数据,还有更多...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-23
相关资源
最近更新 更多