我对此有点新意,我正在尝试在jQuery中进行简单的计算,但它不起作用。有谁可以帮助我吗?谢谢,这是我改进的代码,我添加了你的提示,但仍然无效(没有做任何事情):
<!DOCTYPE html>
<html lang="en"/>
<head>
<title>Seconds</title>
<meta charset="utf-8"/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
Years <input type="value" name="secs" id="secs"><br>
<input id="sub" type="submit" value="Submit">
<script type="text/javascript">
$(function(){
$('#sub').click(function(){
var years = $('#secs').val();
var secs = years * 365 *24*60*60;
$('body').append( '<p>You have' + secs + 'of life</p>' );
});
})
</script>
</body>
</html>
答案 0 :(得分:2)
该代码存在以下几个问题:
如果你查看你的网络控制台,你会看到语法错误,因为这行:
$( body ).append( '<p>'"You have"+ secs + "of life"'</p>' );
请注意,您有一个字符串'<p>'
,后面跟着另一个字符串"You have"
。你不能这样做。在最后一行有一个类似的问题。
每个应该只是一个字符串:
$( body ).append( "<p>You have"+ secs + "of life</p>" );
您的代码依赖于jQuery,但在您的页面中似乎没有包含jQuery的script
标记。如果它不存在,你需要添加它。
这一行在两个方面存在问题:
years = $('#secs').val();
一旦页面加载,您就会从#secs
元素中获取值,而不是等待用户填写值。此外,您似乎期望从中获取多个年。 id
"secs"
似乎......很奇怪...对于您希望找到多年的字段。
不是抓取加载值,而是在单击sub
按钮时抓住它。 (将其移至click
处理函数。)
您的按钮是提交按钮,因此它将提交表单。如果您要在现有页面中显示信息,则不希望它这样做。将按钮类型更改为button
,而不是submit
。
您正在成为The Horror of Implicit Globals的牺牲品,因为您尚未声明years
变量。始终使用var
在最需要的范围内声明变量。
答案 1 :(得分:1)
你有几个错误。
请尝试:
$('#sub').click(function (e) {
e.preventDefault();
var years = $('#secs').val();
var secs = parseInt(years, 10) * 365 * 24 * 60 * 60;
$('body').append('<p>You have ' + secs + ' of life</p>');
});
答案 2 :(得分:0)
你真的包含了jquery吗?
根据你所展示的你没有
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
需要包括在
页面的顶部<head>
部分
答案 3 :(得分:0)
似乎jquery文件不包含在此代码中。请验证并且如果未包含该文件,则在html页面的head部分添加下面给出的代码。
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
答案 4 :(得分:0)
<!DOCTYPE html>
<html lang="en"/>
<head>
<title>Seconds</title>
<meta charset="utf-8"/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
Years <input type="value" name="secs" id="secs"><br>
<input id="sub" type="submit" value="Submit">
<script type="text/javascript">
$(function(){
$('#sub').click(function(){
var years = $('#secs').val();
var secs = years * 365 *24*60*60;
$('body').append( '<p>You have' + secs + 'of life</p>' );
});
});
</script>
</body>
</html>
您犯的错误:
No jQuery included
$(body) should be $('body')
'<p>'"You have"+ secs + "of life"'</p>' should be '<p>You have' + secs + 'of life</p>'
var years = $('#secs').val(); //needed to be within your function otherwise it is calculated on page load NOT when you click button (so will always be 0)