Javascript - 将值与自身相乘

时间:2014-02-21 06:55:54

标签: javascript multiplying

我想编写一个脚本,通过按下按钮将文本字段中的任何数字与其自身相乘,并将结果作为警报提供。 我是Javascript的新手(并且今天晚些时候必须写我的第一次考试)。 语法是杀了我,有时和Java很相似,但不是。

这是我到目前为止所提出的:

<!DOCTYPE html>
<html>
<head>
<script>
function myMultiply()
{
var x= $('#num1').val();
var y= x*x;
alert(x+" times "+x+" equals "+y);
return false;
}
</script>
</head>

<body>

<input type="text" id="num1">

<button onclick="myMultiply()">Try it</button>

<p>By clicking the button above, the value in the text field will be multiplied with itself.</p>

</body>
</html>

5 个答案:

答案 0 :(得分:4)

您需要确保解析输入值,因为在查询时它将是一个字符串。要使用乘法对其进行操作,您需要一个数字。您通常希望将10作为第二个基数参数传递,因为有parseInt

的不同实现
function myMultiply() {
    var x = parseInt($('#num1').val(), 10);
    var y = x*x;
    alert(x + " times " + x + " equals " + y);
    return false;
}

答案 1 :(得分:3)

你不能将字符串相乘,它将被连接,使用 parseInt 首先将值解析为int

parseInt

function myMultiply()
{
    var x= parseInt($('#num1').val(), 10);
    var y= x*x;
    alert(x+" times "+x+" equals "+y);
    return false;
}

答案 2 :(得分:0)

尝试替换var y = x * x; with var y = Number(x)* Number(x);

答案 3 :(得分:0)

除了表明你应该parseInt的其他答案之外,还应该注意到你目前没有包含jQuery(它允许你访问$(".element")符号)。

jQuery是一个非常常见的javascript库,可以为非常常见的Javascript任务(选择器,事件等)节省大量时间。您将在许多教程中看到$()符号,并且要使用它,您需要包含jQuery。

这将有效:

<!DOCTYPE html>
<html>
<head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script>
        function myMultiply()
        {
                var x= parseInt( $('#num1').val(), 10 );
                var y= x*x;
                alert(x+" times "+x+" equals "+y);
                return false;
        }
        </script>
</head>

<body>

        <input type="text" id="num1" />
        <button onclick="myMultiply()">Try it</button>
        <p>By clicking the button above, the value in the text field will be multiplied with itself.</p>

</body>
</html>

答案 4 :(得分:0)

你的代码很好。你只是错过了jquery include。

在您的其他脚本正上方添加<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>,所有内容都保持不变。

Javascript将解析字符串并在看到您尝试乘法时自动将它们转换为数字。 “4”*“2”为8,不是“44”或“42”或任何其他魔法组合。您通过引用$而没有实际包含jQuery作为必需脚本的语法错误,因此该函数最终未定义。

<!DOCTYPE html>
<html>
<head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script type="text/javascript">
    function myMultiply()
    {
      var x= $('#num1').val();
      var y= x*x;
      alert(x+" times "+x+" equals "+y);
      return false;
    }
  </script>
</head>

<body>

<input type="text" id="num1">

<button onclick="myMultiply()">Try it</button>

<p>By clicking the button above, the value in the text field will be multiplied with itself.</p>

</body>
</html>