2014-08-28 134 views
0

我有點窮HTMLJavaScript。如何使用document.write()方法寫入當前html頁面?

我在javascript中使用document.write()方法來填充點擊按鈕後的一些數據(在表中)。 但是,當我點擊它在新頁面中填充的按鈕。 因爲我的要求是,當我點擊加號時,它應該顯示樹形或結構瀏覽器下方的連接對象。

所以我的代碼,

<tr style="{display='none'}"> 
    <td align="center" class="bord"><input type="checkbox" value="<%= strObjectId %>" name="rdel"></td> 
    <td class="bord"><%= strId %></td> 

    <td align="center" class="bord"><input type="button" name = "button" value="Plus" onclick ="PopulateData()"/></td> 

 <!-- <table id="tbl1">  <tr><td class="bord">22</td> 
    <td class="bord">Part</td> 
    <td class="bord">part001</td> 
    <td class="bord">desc</td> 
    <td class="bord">Owner</td> 
    <td class="bord">ObjectId</td> 
    </tr></table> 
    --> 
    <td class="bord"><%= strType %></td> 
    <td class="bord"><a href="ltSearchDocProperties.jsp?" target ="_blank"><%= strName.concat("_").concat(strObjectId) %></a></td> 
    <td class="bord"><%= strDesc %></td> 
    <td class="bord"><%= strOwner %></td>   
    <td align="center" class="bord"><a href="ltFileCheckin.jsp?objectId=<%=strObjectId%>" target ="_blank"><img src="/DMS/images/iconSmallDocumentAttachment.gif"><%= strObjectId %></a></td> 
    <!--<td class="bord"></td> 
    <td class="bord"></td> 
    <td class="bord"></td>--> 
    <td class="bord"></td> 
    <td class="bord"></td> 
    </tr>  

而且我的JavaScript的方法是:

function PopulateData() 
{ // alert("hello"); 
    document.write("<table><tr><td class=\"bord\">22</td><td>Part</td><td>part001</td> <td>descrip</td><td>Owner</td><td>ObjectId</td></tr></table>"); 
} 
</script> 

要實現此任務,我正在使用按鈕& onclick()調用函數PopulateData()。 最初我硬編碼所有的值。在onclick上使用PopulateData()方法是一種方法。所以請建議我任何其他最簡單的方法,以便我可以實現這一目標?

+8

你不能。如果文檔處於關閉狀態,則「document.write」只有在打開一個新文檔時才能起作用。 如果你想修改一個現有的文檔,那麼你必須使用'document.createElement','document.createTextNode','document.appendChild'和朋友來使用DOM操作。那裏有很多教程。 – Quentin 2014-08-28 12:42:19

+0

@Quentin爲什麼不把它作爲答案? – mingos 2014-08-28 12:51:05

+0

@mingos - 因爲它不是一個答案。它只是一個正確方向的指針。因爲這是一個答案,我不得不寫一篇關於如何使用它們的教程,而互聯網並不需要其中的一個。 – Quentin 2014-08-28 12:53:12

回答

1

在頁面加載後寫內容的任何元素的簡單(不漂亮)的方法是通過innerHTML屬性:

var html = element.innerHTML; 
html += "new content"; 
element.innerHTML = html; 

在你的情況,如果你想將內容添加到身體,你會做:

function PopulateData() { 
    var html = document.body.innerHTML; 
    html += "<table><tr><td class=\"bord\">22</td><td>Part</td><td>part001</td> <td>descrip</td><td>Owner</td><td>ObjectId</td></tr></table>"; 
    document.body.innerHTML = html; 
} 

但是,這僅僅是一個簡單的黑客...你真的應該瞭解DOM操作,像document.createElement("table");document.body.appendChild()

相關問題