alert() 的值为空白...为什么?

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="js/jquery.mobile-1.4.5/jquery.mobile-1.4.5.min.css"/>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/jquery.mobile-1.4.5/jquery.mobile-1.4.5.min.js"></script>

<title>无标题文档</title>
</head>

<body>

<input id="fannao" type="text"/>

<a href="input_reason.html"><button type="button" href="input_reason.html">确认</button></a>


<script type="text/javascript">
$(document).ready(function(){
    var abc = $("input").val();
    $("button").click(function(){
        alert(abc);
    });
});
</script>

</body>
</html>

以上为全部代码...总之不知道为什么的,alert(abc); 得到的是个空白提示框,但是如果改为 alert($("input").val()); 可以正常显示,为什么?

阅读 7.1k
1 个回答

看你的代码abc是全局变量,在刚加载完页面时abc便被赋值$("input").val();此时$("input").val();值应该为空,而之后调用alert的时候,你的abc并没有重新赋值,所以为空。而alert($("input").val());会有值。

你可以试着改为:

sessionStorage.id = $("input").val(); 
//sessionStorage.setItem(id, $("input").val());
var abc;
//sessionStorage.id = a; 
//var data = sessionStorage.id;
$("button").click(function(){
    abc = $("input").val();
    alert(abc);
});

在alert之前赋值,就不会有之前的问题了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题