test = 4;
将创建一个全局变量并将其设置为 4。它相当于更显式的window.test = 4
.
在创建全局变量之前,它的值将作为未定义返回。
您需要确保alert(test)
在文档就绪处理程序运行后调用。这意味着您要么需要在事件处理程序中调用它,要么需要从文档内部调用一个函数。
如果您只是alert(test)
在文档就绪处理程序下方调用,它将在页面加载时立即执行 - 此时其值为undefined
. 仅在文档准备好后才test
设置为 4。
还要注意,任何被调用test
的局部变量都会影响全局变量,也就是说,将使用局部变量的值而不是全局变量的值。您可以通过使用来避免这种情况window.test
。
你可以做两件事:
- 将 id 添加到表中的字段,然后在文档就绪处理程序中设置它们的内容
- 在页面的其余部分完成加载并设置测试后插入表格
我推荐第一种方法:
$(document).ready(function(){
test = 4;
document.getElementById("test-value").innerHTML = test
});
使用此 html 代码:
<table>
<!-- ...whatever else you have -->
<td id="test-value"></td>
<!-- ... -->
</table>
如果您想使用<script>document.write(test)</script>
,您需要通过在文档就绪处理程序中将 innerHTML(见上文)设置为“...”来插入表格的 html 代码。
你可以这样做,但它会比需要的更痛苦。如果您只是将 innerHTML 设置为“document.write(test)”之类的内容,浏览器将认为包含文档就绪处理程序的脚本标记已关闭。
相反,我建议您使用模板引擎,例如_.template
underscore.js。然后,您基本上将 HTML 放在脚本标记中,并且仅在 document.ready 中显示它。此时,您将能够指定将在模板内替换的变量。