我在一个p标签中存储了一个值,然后我有这个条件问题。 如果人们选择是,则答案没有任何改变。如果人们选择否,那么我将从答案中减去一个数字并将其显示在同一位置。 我如何玩这两个选项,如果我再次选择是,则该号码不会回到原始答案。 怎么能让这个工作? 感谢。
HTML:
Do you have a yard
<input type="radio" name="ownyard" value="0">Yes
<input type="radio" name="ownyard" id="yard1" value="0.09789">No
<br>Total trash weight (based on your purchasing behavior):
<p id="wastetotal" class="answer">0.707</p> metric tons
jquery的:
$("input[name='ownyard']:radio").change(function () {
var value = $(this).attr('value');
var totalwaste = parseFloat($("#wastetotal").text());
if ($("#yard1").is(":checked")) {
var newtrash = totalwaste - value;
} else {
var newtrash = totalwaste + value;
}
$("#wastetotal").html(newtrash);
});
答案 0 :(得分:1)
你走在正确的轨道上。在两个值上使用parseFloat
。为了清晰起见,在此演示中简化了值:
http://jsfiddle.net/isherwood/nXYGE/
$("input[name='ownyard']:radio").change(function () {
var value = parseFloat( $(this).attr('value') );
var totalwaste = parseFloat( $("#wastetotal").text() );
if ($("#yard1").is(":checked")) {
var newtrash = totalwaste - value;
} else {
var newtrash = totalwaste + value;
}
$("#wastetotal").text(newtrash);
});
请注意,为了清晰和一致,我还清理了一些HTML。
答案 1 :(得分:0)
捕捉这样的原始价值?
var originalwaste = 0.0, isOriginal = false;
$("input[name='ownyard']:radio").change(function () {
var value = parseFloat($(this).attr('value')),
totalwaste = parseFloat($("#original").text());
if ( !( isOriginal ) ) {
originalwaste = totalwaste; // So now the original waste is stored, you can edit or use it in the future.
isOriginal = true;
}
if ($("#yard1").is(":checked")) {
var newtrash = totalwaste - value;
} else {
var newtrash = totalwaste + value;
}
$("#current").html(newtrash);
$("#original").html(originalwaste);
});