DOM innerHTML不接受我的html数据

时间:2010-04-14 00:50:32

标签: javascript dom

    var popupcontent = myfunc(item.Id, i);
    tablepopup = document.createElement("table");
    tablepopup.innerHTML = popupcontent;
    highSlide.appendChild(tablepopup);
    tdAnkunft.appendChild(kirmiziOkLink);
    tdAnkunft.appendChild(highSlide);
    tableRow.appendChild(tdAnkunft);

您好, myfunc返回一个像“table ../ table”这样的html表代码但是我收到一个错误:“htmlfile:Unknown runtime error” 有没有其他方法可以将我的字符串数据“popupcontent”解析为tablepopup?

从myfunc返回的示例html代码是

<table width="100%" border="0" cellspacing="1" cellpadding="2">
    <tr bgcolor="#FFFFFF" class="table_header" style="cursor: pointer;" onmouseover="this.bgColor='#EEEEEE';"
        onmouseout="this.bgColor='#FFFFFF';">
        <td bgcolor="#E4E4E4">
            Flug.
        </td>
        <td bgcolor="#E4E4E4">
            Flug Nr.
        </td>
        <td bgcolor="#E4E4E4">
            Flughafen Abflug
        </td>
        <td bgcolor="#E4E4E4">
            Datum
        </td>
        <td bgcolor="#E4E4E4">
            Abflug
        </td>
        <td bgcolor="#E4E4E4">
            Ankunft
        </td>
        <td bgcolor="#E4E4E4">
            C
        </td>
        <td bgcolor="#E4E4E4">
            S
        </td>
        <td bgcolor="#E4E4E4">
            &nbsp;
        </td>
    </tr>







    <tr bgcolor="#FFFFFF" onmouseover="this.bgColor='#EEEEEE';" onmouseout="this.bgColor='#FFFFFF';"
        style="cursor: pointer;">
        <td bgcolor="#FFFFFF" class="table_content" align="center">
            TK
        </td>
        <td class="table_content">
            351
        </td>
        <td class="table_content">
            Bremen - Frankfurt
        </td>
        <td class="table_content">
            13.05.2010
        </td>
        <td class="table_content" align="center">
            19:50
        </td>
        <td class="table_content" align="center">
            20:50
        </td>
        <td class="table_content" align="center">
            V
        </td>
        <td class="table_content" align="center">
            9
        </td>
        <td class="table_content" align="center">
            <img src="images/right.arrow.png" width="18" height="18" onclick="swapPlans('Bremen','349');">
        </td>
    </tr>
</table>

2 个答案:

答案 0 :(得分:2)

innerHTML需要一个带有元素的新html的字符串。 myfunc()可能会返回无法解析为html的内容。尝试传递类似tablepopup.innerHTML = "<em>hi!</em>";的内容你可以发布myfunc吗?

另外,“有效的html表格代码”是什么意思?如果您期望..退出目录的某个级别,那么它将无法正常工作。您没有在机器上指定html文件的位置,而是以字符串形式指定实际的html。如果要从文件URL中包含html,则需要像PHP这样的服务器端语言。

答案 1 :(得分:2)

你可以尝试

tablepopup.appendChild(document.createTextNode(popupcontent));

作为替代方案。

从提供的代码看,您的DOM树看起来像是:

<tr>
    <td id="tdAnkunft">
        <unknown id="kirmiziOkLink">
        <table id="tablepopup">
            popupcontent
        </table>
    </td>
</tr>

也许确保popupcontent返回有效的<tr><td></td</tr>树。

如果<tr><td></td</tr> myfunc完全是您在原始[已编辑]帖子中提供的代码,那么您的DOM树似乎无效,因为return包含无效代码。您的DOM树看起来像:

<table id=tablepopup">

请注意,<table id="popuptable"> <table> <tr> <td> Flug. </td> <td> Flug Nr. </td> <td> Flughafen Abflug. </td> ... ... <td> 9. </td> <td> <img /> </td> </tr> </table> </table> 中的table是无效的HTML。这可能是你的问题。