[英]jquery - using it on an input field - can't get variable out of function so I can use it
第一次尝试在真实的网页上使用jQuery课程时,我发现该函数完成后变量guess
(在此内部函数的范围内)消失。
我想这是正常的javascript行为,但是通常如何抓住变量,以便可以在其他函数中使用它呢? 我的课程从未涵盖过。
我以为一旦guess
被路由到#display
的innerHTML中,它就会坚持下去。 但是它甚至从那里消失了。
?
<!DOCTYPE html>
<html>
<HEAD>
<title>Game of the Century</title>
<meta charset="UTF-8">
<LINK href="reset.css" rel="stylesheet" type="text/css">
<LINK href="main.css" rel="stylesheet" type="text/css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="application.js"></script>
</HEAD>
<body>
<form>
<input type='text' name = "input" id = "input"><br>
<input type='submit' id="submit">
</form>
<p id = "display"></p>
<div>
<img src="http://img707.imageshack.us/img707/2403/rj1a.jpg" alt = "ad">
</div>
</body>
</html>
...
$(document).ready(function () {
$('#submit').click( function() {
var guess = $('#input').val();
$("#display").html(guess);
});
});
这绝对是正常的,与jQuery无关。 您的guess
变量是在闭包匿名函数中定义的。 因此,它存在于此,并且在该范围之外无法访问。 如果要在点击处理程序之外使用guess
,只需在外部定义它即可。 例如:
$(document).ready(function () {
var guess;
$('#submit').click( function() {
guess = $('#input').val();
$("#display").html(guess);
});
var anotherMethod = function() {
alert(guess); // <--- it works
}
});
另外,如果您已经包含jQuery,则无需使用document.getElementById
。
编辑:我刚刚看到的html。 该代码还有另一个副作用。 当您单击按钮时,您的表单实际上正在提交。 尝试将type="submit"
更改为"type="button"
或其他防止表单提交的方法。
就在这里我的解决方案可能具有更好的读写任务分离
$(document).ready(function () {
getMyHtml = function() {
return $('#input').val();
}
setMyHtml = function () {
var s = getMyHtml();
$("#display").html(s);
}
$('#submit').click(setMyHtml);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.