查询DIV的innerHTML会更改表属性

时间:2016-10-02 12:49:44

标签: javascript html dom

我必须在HTML页面中动态显示复选框,并从数据库中获取它们的值。

我使用的技巧是在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 个答案:

答案 0 :(得分: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结束标记,并进行了一些更改。看看这是否能解决您的问题。