我正在使用javascript/jquery来计算一些简单的公式。我通过创建对象然后使用HTML输入元素的值作为执行和返回答案所需的参数来完成此操作。输入文本的JQuery值不能用作参数
这里的JavaScript(HTML和CSS在的jsfiddle链接这一问题的末尾提供):
var recP = $("#recP");
var recA = $("#recA");
var ansr = $("#ansr");
var l = $("#l").val();
var w = $("#w").val();
//rectangle
function Rectangle(length,width) {
this.length = length;
this.width = width;
this.calcPerim = function() {
return (this.length * 2) + (this.width * 2);
};
this.calcArea = function() {
return this.length * this.width;
};
};
var rectangle = new Rectangle(l,w); // l and w are defined in the above variables
var recPerim = rectangle.calcPerim(l,w);
var recArea = rectangle.calcArea(l,w);
recP.click(function() {
ansr.append("The perimeter is " + recPerim);
});
recA.click(function() {
ansr.append("The area is " + recArea);
});
如果我设置输入元素的值,我得到预期的结果。例如:
<input type="text" id="l" value="3" />
<input type="text" id="w" value="4" />
将返回12的面积和14的周边,但是当该值在输入框中被改变时,它仍返回相同的值。这真是令人沮丧,我无法弄清楚什么是错的。我甚至尝试过不设置一个值,但这只是返回0.
这是一个带有所有HTML,CSS和JS的jsFiddle。如果更改值,结果仍然相同。我是新来的JavaScript,所以任何帮助表示赞赏。
这工作,它实际上更好,因为现在我不必定义新的变量的长度和其他形状。但是,只有当所有事情都是地方性而非全球性时,它才能起作用的原因是什么 – samrap
它在第一个脚本运行 – twil
上仅获取一次值,这是合理的。谢谢! – samrap