【问题标题】:Jquery - auto refresh specific div on pageJquery - 自动刷新页面上的特定 div
【发布时间】:2020-12-22 00:28:08
【问题描述】:

我想每 3 秒自动刷新一个特定的 div(使用“autotest”类),我使用此脚本来执行此操作:

<div class="autotest">some variable</div>

setInterval(function() {
  $('.autotest').load(window.location.href + ' .autotest');
}, 3000);

它有点工作,但它在刷新时包含标签,所以它看起来像这样:

<div class="autotest">
  <div class="autotest">some variable</div>
  <div class="autotest">some variable</div>
</div>

第一次刷新时会像上面那样结束。下次刷新时不会添加更多 div。每次刷新时,它都会更新良好的变量。

这里有什么问题?

【问题讨论】:

    标签: php jquery refresh setinterval


    【解决方案1】:

    您需要在您的请求中添加一个查询参数,例如“isajax=true”,以通知您的 php 代码这是一个 ajax 调用,它不需要在输出中包含周围的 div。

    在您的 php 文件中,您可以简单地添加一个 if 子句来根据查询参数发送不同的输出:

    if (!empty($_GET['isajax']) && $_GET['isajax'] == 'true') {
        // response without html tag
    } else {
        // normal html response
    }
    

    【讨论】:

    • 谢谢@Alimo。我无法让您的解决方案发挥作用,因此我尝试了在深层网络空间中发现的其他方法: $('.autotest').load(location.href + ' .autotest>*', '');请注意 >*,'' 它的作用是删除 div 标签的内部内容并将其留空。也许它只需要一个小的修正?
    • 如果它工作正常!要使该解决方案发挥作用,您可以生成这样的 url:var url = location.href + '?isajax=true';然后在你的 .load(url) 中使用这个 url
    • 嗨@Alimo。我仍然无法让它工作。我现在尝试了 1) load(location.href + '?isajax=true') 和 2) load(location.href + ' .autotest?isajax=true')。
    【解决方案2】:

    感谢您的帮助@Alimo。我无法让它工作,但可能是我。我决定将我的变量放在另一个页面中,然后简单地加载那个。

    setInterval(function() {
      $('.autotest').load('autotest.php');
    }, 3000);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 2011-03-06
      • 1970-01-01
      • 2013-07-21
      相关资源
      最近更新 更多