簡體   English   中英

為什么要創建新表,而不是在HTML文件中刷新同一表?

[英]Why are new tables being created instead of the same one being refreshed in my HTML file?

我必須怎么做才能在單擊顯示時刷新表? 現在,每當單擊顯示時 ,就會在前一個表的下面創建一個新表。

第一次加載頁面時,我希望在“輸入”字段下顯示整個表(即,整個XML文件(鏈接到XSL文件)),該怎么做?

在IE中(而不是在Firefox中),只要用戶單擊顯示按鈕,輸入部分就會消失,僅顯示具有XML內容的表。 如何讓IE保留輸入字段並在下面顯示表格? 這是我的代碼片段,其中包含所有必不可少的部分……謝謝!

<html>
.........
......
<script type="text/javascript">

function filterTable(f)
{
  ................
  .......
  if (moz)
  {
    ...........
    ....
    var proc = new XSLTProcessor();
    proc.importStylesheet(stylesheet);
    var resultFragment = proc.transformToFragment(xmlDoc, document);
    document.getElementById("target4").appendChild(resultFragment);
  }

  else if (ie)
  {
    .....
    ......
    value.setAttribute("select", "books/scifi" + filter);
    value2.setAttribute("select", sorter);

   document.write(xmlDoc.transformNode(stylesheet));
  }
}

</script>
<form>
  ...........
  ....
  <input type="button" value="Display" onClick="filterTable(this.form)"/>
</form>

<body id="target4">
</body>
</html>

在加載文檔后使用write()將覆蓋整個文檔。 也可以使用另一種方法來注入新內容,例如,設置元素的innerHTML(DOM方法在這里不起作用,因為IE不允許在文檔之間移動節點)。


相關評論:

您從中獲得的表的標記

xmlDoc.transformNode(stylesheet)

您必須首先通過此標記創建一個節點:

  //create a dummy-wrapper
var wrapper=document.createElement('div');

  //insert the markup
wrapper.innerHTML=xmlDoc.transformNode(stylesheet);

  //inject the first child into the document
document.getElementById("target4").appendChild(wrapper.firstChild);

  //delete the wrapper, we don't need it anymore
delete wrapper;

暫無
暫無

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

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