2016-10-02 70 views
0

我必須在HTML頁面中動態顯示覆選框並從數據庫中獲取它們的值。Chanding innerHTML DIV更改表格屬性

我使用的技巧是使用Java創建整個表的HTML,然後使用AJAX我這樣做

var div = document.getElementByID("div").innerHTML = htmlCode; 

但問題是

在htmlCode可變

,在html就像

<table width="100%"> 
    <tr> 
     <td width="50%">...... 

但是當我檢查div.innerHTML它顯示像

<TABLE width="100%"> 
<TBODY> 
    <TR> 
     <TD width="50%"> 
      <?xml:namespace prefix = .... 

爲什麼它們變成大寫,爲什麼添加了xml:namaesapce前綴?

這會引起問題,因爲表格未正確顯示。

有沒有其他更好的方法來做到這一點,而不使用innerHTML?

爲代表的代碼是

String html = "<table width=\"100%\">"; 

for (Iterator it = lookupList.iterator(); it.hasNext();) 
    { 
     HashTree lookupElement = (HashTree) it.next(); 
     String code = lookupElement.getChildTagValue ("CODE"); 
     String text = lookupElement.getChildTagValue ("TEXT"); 

     String labelText = ""; 

      if(indexLookupElement == 0) 
       labelText = "First Checkbox label"; 

      html = html + "<tr><td width=\"50%\" >" + 
      + 
        "<input type=\"checkbox\" id=\"item" + code + "\" />" + 
        "<html:label " +  
         "id=\"_Description\"" + 
         "name=\"_Description\"" + 
         ">" + text + 
        "</html:label>" +      


      "<td width=\"50%\" >" + 
      "</td></tr>"; 

      indexLookupElement += 1; 
    } 

html = html + "</table>"; 

感謝,

艾登

+1

不要把它當作答案,但'document.getElementByID'是錯誤的..它應該是'document.getElementById'(id = lowercase)和'div.innerHTML'可能是'undefined' ..你應該提供更多的代碼https://jsfiddle.net/uo2gjvxL/12/ – Merlin

+0

請提供代碼的一部分,您生成html –

+0

我只是這樣做在主頁....創建一個div .....然後創建表<表寬度= \「100%\」>然後在該表中動態添加然後​​然後複選框代碼。我重複和複選框的次數與數據庫中的複選框一樣多,這是動態的,可以更改 – Aiden

回答

1

這不是創建HTML代碼服務器端的最佳做法。如果您確定自己的文檔中包含表格,最好將其作爲文檔結構的一部分,並只提供Java代碼中的變量。即使表格是有條件的,你也可以考慮隱藏/取消隱藏變量。如果您的網頁的HTML代碼是正確的,我相信這種方法可以解決您的問題。

更新

測試這樣的:

html = html + "<tr><td width=\"50%\"><input type=\"checkbox\" id=\"item" + code + "\" /><label id=\"_Description\" name=\"_Description\">" + text + "</label></td><td width=\"50%\"></td></tr>"; 

在你的代碼已經丟失TD的結束標記,我做了一些改動。看看這是否能解決你的問題。

+0

問題是我在數據庫中動態獲取複選框的名稱/標籤。它可以隨時由用戶更改。我必須選擇數據庫標籤/複選框的名稱,然後顯示它們。所以,他們的人數不固定。例如書名,書籍作者.....等用戶可以從表格中刪除書籍作者,然後我們不應該創建該書籍作者複選框 – Aiden

+0

我已用代碼更新了問題 – Aiden