首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Javascript/JQuery并在页面加载时获取未定义的var

使用Javascript/JQuery并在页面加载时获取未定义的var
EN

Stack Overflow用户
提问于 2012-07-04 05:54:34
回答 2查看 1.2K关注 0票数 0

我有这个Javascript/JQuery代码:

代码语言:javascript
复制
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script type="text/javascript">

    name = $("#name").val();

    alert("Name: " + name);

</script>

和这个HTML:

代码语言:javascript
复制
<form name="report" action="send.php" method="post">

    <input type="text" name="name" id="name" value="Senna" />
    <input type="submit" value="Send" />

</form>

当页面加载时,我得到的是"Name: undefined“而不是"Name: Senna”。

有没有人能帮我达到预期的效果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-04 05:57:30

虽然JavaScript提供了在呈现页面时执行代码的load事件,但在完全接收到所有资产(如图像)之前,不会触发此事件。在大多数情况下,只要完全构造了DOM层次结构,脚本就可以运行。传递给.ready()的处理程序保证在DOM就绪后执行,因此这通常是附加所有其他事件处理程序和运行其他jQuery代码的最佳位置。

您需要在页面加载后指示执行该函数。目前,您只是定义它,而不是在何时执行它。

代码语言:javascript
复制
$(document).ready(function(){
    name = $('#name').val();
    alert('Name: ' + name);
});

或者:

代码语言:javascript
复制
$(function(){
    name = $('#name').val();
    alert('Name: ' + name);
});
票数 2
EN

Stack Overflow用户

发布于 2012-07-04 05:55:58

您应该将代码放在DOM ready handler

代码语言:javascript
复制
$(function() {
    var name = $("#name").val();
    alert("Name: " + name);
});

否则,您将尝试使用尚未加载的元素。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11319742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档