Javascript根本不存储变量。每个变量“未定义”

Javascript根本不存储变量。每个变量“未定义”,javascript,variables,undefined,Javascript,Variables,Undefined,我想知道是否有人能帮我。问题是javascript没有存储任何变量,并且正在运行 <script type="text/javascript" language="javascript"> var name = document.getElementById('text_field').value; var test = "foobar"; function test_function(){ alert("hello"+test); } alert('test '+

我想知道是否有人能帮我。问题是javascript没有存储任何变量,并且正在运行

<script type="text/javascript" language="javascript">

var name = document.getElementById('text_field').value;

var test = "foobar";


function test_function(){
alert("hello"+test);    
}

alert('test '+test);

</script>
第二个警报根本不会发生,当我点击按钮触发test_函数时,它会发出HelloundDefined警报。
我只是不知道该怎么办,它工作正常,然后突然停止了。我应该提到,这是在php页面上,但这不会有什么区别。

如果没有ID text\u字段的元素,其余的代码将不会运行。

如果没有ID text\u字段的元素,其余的代码将不会运行。

尝试更改:

var name = document.getElementById('text_field').value;

尝试更改:

var name = document.getElementById('text_field').value;


在看不到代码的其余部分的情况下,最有可能的罪魁祸首是这一行:

var name = document.getElementById('text_field').value;

如果脚本块在“text_field”存在之前运行,则会出现错误,其余的javascript不会执行。结果是您看不到警报,并且从未设置测试变量。您需要在DOM存在后调用代码,可以在onload或jQuery中的ready函数中运行代码,也可以将脚本块放在页面末尾。

在看不到其余代码的情况下,最有可能的原因是这行代码:

var name = document.getElementById('text_field').value;

如果脚本块在“text_field”存在之前运行,则会出现错误,其余的javascript不会执行。结果是您看不到警报,并且从未设置测试变量。您需要在DOM存在后调用代码,方法是在onload或jQuery中的ready函数中运行代码,或者将脚本块放在页面末尾。

将该脚本块移动到页面底部。文本_字段尚不存在。如果您正在浏览器中调试,请使用Chrome或Firefox,并使用dev工具栏中的Console窗口。它会告诉您这样的事情…

将脚本块移动到页面底部。文本_字段尚不存在。如果您正在浏览器中调试,请使用Chrome或Firefox,并使用dev工具栏中的Console窗口。它会告诉你这样的事情…

你的脚本在正文部分的最底部吗?我打赌这会解决你的问题。你的剧本在正文的最下面吗?我打赌这会解决你的问题。要清楚,如果脚本抛出异常,其余的将不会运行,缺少ID text_字段的元素将抛出异常。要清楚,如果脚本抛出异常,其余的将不会运行,缺少ID text_字段的元素将抛出异常