2014-04-23 24 views
1

我已經將值存儲在一個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>&nbsp;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); 
}); 

回答

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一點的清晰度和一致性。

+0

關於'價值'的好處這並不顯示沒有被扣除的數字,雖然他最初問 – WASasquatch

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); 
}); 

JSFiddle Example

+0

我用parseFloat :)你知道我如何顯示編輯前的原始數字嗎? – user3371790

+0

_什麼意思_「display」_。在屏幕上還是? – WASasquatch

+0

顯示未減去的數字 – user3371790