0

基本上我正在做的是根据经典 ASP 中的下拉选择动态加载外部 HTML 文件。对于我为之工作的人来说,这是一个旧系统,所以除了弄清楚这一点之外,我没有太多选择。包含的 HTML 只是这样的数据表;

<table cellspacing="0" cellpadding="0" style="vertical-align:top; width:100%; ">
<tr style="line-height:14px;" >
<td width="150"><b style="color:#888888;">Symbol<b></td>
<td ><b style="color:#888888;">Security</b></td>
<td width="150" style="text-align:right;"><b style="color:#888888;">Amount</b></td>
<td width="150" style="text-align:right;"><b style="color:#888888;">Mkt Value</b>    </td>
<td width="150" style="text-align:right;"><b style="color:#888888;">Est.Next Date</b></td>
</tr>
<tr style="line-height:14px; background-color: #f0f0e8;">
<td>QPRMQ</td>
<td>BANK DEPOSIT SWEEP PRGRAM FDIC ELIGIBLE</td>
<td style="text-align:right;">100.00%</td>
<td style="text-align:right;">$191.77</td>
<td style="text-align:right;" id="NextSWPDate">11/15/2010</td>
</tr>
</table>

我想在 ID 为“NextSWPDate”的 TD 元素上运行一个函数,但由于这是“包含”html,我只收到错误;

无法设置属性“innerHTML”的值:对象为空或未定义

我的函数现在只是通用的,我试图对对象进行任何操作,在我得到那个集合之后,我可以快速轻松地编写真正的逻辑。

    function SetNextSWPDate(){
document.getElementById("NextSWPDate").innerHTML = "this is a test";
}

谢谢你,尼克

4

4 回答 4

0
 The property is read/write for all objects except the following, for 
 which it is read-only: COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE,
 TABLE, TBODY, TFOOT, THEAD, TITLE, TR.

Colin's work-around (setting innerText on the td instead of innerHTML on the tr)
is a good one in your case. If your needs become more complex, you'll have to
resort to The Table Object Model.

来源为什么 document.getElementById('tableId').innerHTML 在 IE8 中不起作用?

参考http://msdn.microsoft.com/en-us/library/ms533899%28v=vs.85%29.aspx

于 2013-06-10T15:49:31.983 回答
0

您的标签提到了 jQuery,所以我希望 jQuery 解决方案是可以接受的。一个标准$("#NextSWPDate").text("whatever");对我来说效果很好。http://jsfiddle.net/pCx9K/

于 2013-06-10T15:46:59.423 回答
0

好的,所以你必须为你的 jQuery.load 函数实现一个回调函数: $("#yourDiv").load("youExternalFile",function(){//your stuff here ... }); 见 api.jquery.com/load/#callback-function – mguimard 3 小时前

于 2013-06-10T19:35:52.123 回答
0

如果包含 HTML 或生成的 HTML,您可能希望等待执行 javascript,直到 DOM 完全加载。为此,请尝试使用 javascript 的 window.onload 或 jQuery 的 $(document).ready 函数。

于 2013-06-10T15:48:06.510 回答