javascript和jquery非常新。尝试练习并想出这个代码,我希望将用户输入的两个数字输入文本字段,然后单击乘法按钮,它会提醒()答案。
<body>
<script>
$(document).ready(function(){
var first = $('#first').value;
var second = $('#second').value;
$('#multiply').click(function(){
alert(first*second);
}); // end click
}); // end ready
</script>
First Number:
<input type="text" id="first"><br >
Second Number:
<input type="text" id="second"><br >
<input type="button" id="multiply" value="Multiply">
<input type="button" id="divide" value="Divide">
</body>
答案 0 :(得分:2)
我建议:
$(document).ready(function(){
$('#multiply').click(function(){
var first = parseFloat($('#first').val());
var second = parseFloat($('#second').val());
console.log(first*second);
}); // end click
}); // end ready
val()
用于从jQuery对象(或jQuery集合的第一个元素的值)获取value
,parseFloat()
用于将<input/>
元素'字符串转换为数字。顺便说一句,我使用的是console.log()
,而不是window.alert()
,以免让用户感到沮丧。但是,显然,根据自己的喜好进行更改(但是登录到控制台不需要用户操作来解除)。
参考文献:
答案 1 :(得分:1)
jQuery对象中没有value
属性,使用val
方法从输入中获取值:
var first = $('#first').val();
var second = $('#second').val();
现在你有了在页面加载时获取值的代码,但你应该在点击发生时获取值:
$(document).ready(function(){
$('#multiply').click(function(){
var first = $('#first').val();
var second = $('#second').val();
alert(first * second);
}); // end click
}); // end ready
执行乘法时,您正在使用从字符串到数字的隐式转换。您可能希望显式解析字符串,最好确保数据的类型正确,而不是依赖隐式转换。例如,如果您想添加数字,那么隐式转换将不起作用,因为+
运算符也用于连接字符串。使用parseInt
或parseFloat
方法将字符串解析为数字。例如:
var first = parseInt($('#first').val(), 10);
var second = parseInt($('#second').val(), 10);
答案 2 :(得分:0)
获取文本字段的值时,结果为文本。不是数字。您可以使用(全局可用)parseFloat函数将值解析为数字(如果数字没有小数值,则使用parseInt函数)。
var first = parseFloat($("#first").val());
var second = parseFloat($('#second').val());
答案 3 :(得分:0)
$('#first')是一个jQuery对象,所以你应该使用.val()方法。另一方面,您在DOM准备就绪时设置变量,因此在用户点击时不会更新变量。
$(document).ready(function () {
var first, second;
$('#multiply').click(function () {
first = $('#first').val();
second = $('#second').val();
alert(first * second);
});
});
在其他方面,您的脚本标记应位于正文的末尾。脚本解析是同步的,因此浏览器需要更多时间来准备好DOM。 玩得开心! :)