jQuery计算生命的秒数

时间:2014-01-05 10:53:32

标签: jquery seconds

我对此有点新意,我正在尝试在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>

5 个答案:

答案 0 :(得分:2)

该代码存在以下几个问题:

  1. 如果你查看你的网络控制台,你会看到语法错误,因为这行:

    $( body ).append( '<p>'"You have"+ secs + "of life"'</p>' );
    

    请注意,您有一个字符串'<p>',后面跟着另一个字符串"You have"。你不能这样做。在最后一行有一个类似的问题。

    每个应该只是一个字符串:

    $( body ).append( "<p>You have"+ secs + "of life</p>" );
    
  2. 您的代码依赖于jQuery,但在您的页面中似乎没有包含jQuery的script标记。如果它不存在,你需要添加它。

  3. 这一行在两个方面存在问题:

    years = $('#secs').val();
    

    一旦页面加载,您就会从#secs元素中获取值,而不是等待用户填写值。此外,您似乎期望从中获取多个id "secs"似乎......很奇怪...对于您希望找到多年的字段。

    不是抓取加载值,而是在单击sub按钮时抓住它。 (将其移至click处理函数。)

  4. 您的按钮是提交按钮,因此它将提交表单。如果您要在现有页面中显示信息,则不希望它这样做。将按钮类型更改为button,而不是submit

  5. 您正在成为The Horror of Implicit Globals的牺牲品,因为您尚未声明years变量。始终使用var在最需要的范围内声明变量。

答案 1 :(得分:1)

你有几个错误。

  • 添加.preventDefault()以停止提交表单的提交按钮上的点击事件
  • 最佳做法是使用parseInt()将输入转换为整数
  • 您需要阅读点击处理程序中的年份
  • 附加到身体
  • 时,您对琴弦的处理不正确

请尝试:

$('#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>');
});

JS Fiddle - working version

答案 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)