簡體   English   中英

Javascript:更新XMLHttpRequest已加載的DOM元素

[英]Javascript: updating DOM element that has been loaded by XMLHttpRequest

我有一個DIV,最終由XMLHttpRequest加載。 在這個新加載的div中應該是更新(如果存在)

   if (document.getElementById('newdiv') !== null) {
      document.getElementById('newdiv').innerHTML= xhr.responseText;
    }

似乎不起作用。 當我對由早期XMLHttpRequest插入的Element運行此檢查時, if (document.getElementById('newdiv') !== null)返回null並且不會插入響應。 如果我在頁面加載時在DOM中的某個元素上執行此操作,則它可以正常工作。

如何在頁面加載后更新已(可能)加載的Element的值?

請不要使用jquery,僅使用javascript 編輯以澄清

<body>
    <button onclick="f1()">
    <input onchange="f2(this.value)"/>
    <div id="parent"></div>
</body>    
<script>
function f1()  {
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {             
      if (xhr.status == 200 && xhr.status < 300) 
        console.log(xhr.responseText);
        console.log(document.getElementById('parent'));
        if (document.getElementById('parent') !== null) {
          document.getElementById('parent').innerHTML= xhr.responseText;
        }
    }  

  postvars = somestuff;
  xhr.open("POST", "req.py", true);
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhr.overrideMimeType("application/text");
  xhr.send(postvars);
  }



function f2(val)  {
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {                
      if (xhr.status == 200 && xhr.status < 300)  
        console.log(xhr.responseText);
        console.log(document.getElementById('newdiv'));
        if (document.getElementById('newdiv') !== null) {
          document.getElementById('newdiv').innerHTML= xhr.responseText;
        }
    }    

  }
  postvars = val;
  xhr.open("POST", "req.py", true);
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhr.overrideMimeType("application/text");
  xhr.send(postvars);
  }}
</script>

f1的xhr.responseText就像

<div id="newdiv"></div>

f2的xhr.responseText就像

fancy text

刪除!= null條件,因此每個請求將顯示新數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM