首页 > 解决方案 > 从 javascript 重新加载 DIV

问题描述

我不是 JavaScript 方面的经验丰富的程序员,我正在努力在指定的 DIV 中重新加载数据。

我这里有一个例子。原始代码更复杂,我包含一个禁用日期的日历。更新后计算新的禁用天数,并应在日历中列出。但是,此示例显示了该问题。单击按钮时,应显示文本“更新的文本”而不​​是“原始文本”。

有什么建议么?

var bla = "Original text";

function js_updtest() {
  bla = "Updated text";
  $("#test").load(" #test");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="inlay">
  <div id="middle">
    <div id='test'>
      <script type="text/javascript">
        document.write(bla)
      </script>
    </div>
    <input type='button' value='Update' name='Updatetext' onclick='js_updtest();'>
  </div>
</div>

标签: javascripthtml

解决方案


这里有几个基本问​​题,最好的办法可能是从一些介绍性的 JavaScript 教程重新开始。但具体来说,这两个问题是:

  1. 在这里,您为变量设置了一个新值:

    bla = "Updated text";
    

    但是您不会在任何地方重复使用该变量。当页面加载时,它被使用过一次,并带有它的初始值。更新变量的值并不会更新所有已经使用过它的地方。

    更新后,使用它。例如:

    document.getElementById('test').innerText = bla;
    

    (请注意,这也是最初在页面加载时使用变量的更好方法。 document.write()几乎普遍不赞成。不要从写入文档的角度考虑它,从识别 DOM 元素的角度考虑它更新和更新它。)

  2. 你甚至想在这里做什么?:

    $("#test").load(" #test");
    

    jQuery.load()函数用于发出 AJAX 请求以从服务器获取新内容并将其直接写入目标元素。但这似乎根本不是您想要做的。看起来这个语句(以及一般的 jQuery)可以被删除。


推荐阅读