0

dec()値が減らないのはなぜですか?

<div id="variableTest">8</div>
<label id="incButton" onclick="inc()">+</div> </br>   
<label id="decButton" onclick="dec()">-</div> </br>
    ​

function dec() {
    var testDec = document.getElementById("variableTest").innerHTML;
    testDec--;
}

function inc() {
    var testInc = document.getElementById("variableTest").innerHTML;
    testInc++;
}​

http://jsfiddle.net/fv6VA/8/

4

3 に答える 3

2

element.innerHTML数値ではなく文字列を返します。次のようなものを使用する必要があります。

var element = document.getElementById("variableTest");
element_number = parseFloat(element.innerHTML);
element_number++;
element.innerHTML = element_number;
于 2012-07-20T18:52:05.893 に答える
1

基本的に、innerHTML のコピーを作成し、javascript メモリでそれをデクリメントしています。variableTest ノードの innerHTML を実際に設定していません。

function dec() {
    var testDec = document.getElementById("variableTest").innerHTML;
    testDec--;
    document.getElementById("variableTest").innerHTML = testDec;
}

アップデート

また、HTML が台無しになっています。label適切に閉じる必要があります

<div id="variableTest">8</div>
<label id="incButton" onclick="inc()">+</label> </br>   
<label id="decButton" onclick="dec()">-</label> </br>
于 2012-07-20T18:52:50.967 に答える
-1
<div class="container">
<input type="button" onclick="decrementValue()" value="-" />
<input type="text" name="quantity" value="1" maxlength="2" max="10" size="1" id="number" />
<input type="button" onclick="incrementValue()" value="+" />
</div>

<script type="text/javascript">
function incrementValue()
{
    var value = parseInt(document.getElementById('number').value, 10);
    value = isNaN(value) ? 0 : value;
    if(value<10){
        value++;
            document.getElementById('number').value = value;
    }
}
function decrementValue()
{
    var value = parseInt(document.getElementById('number').value, 10);
    value = isNaN(value) ? 0 : value;
    if(value>1){
        value--;
            document.getElementById('number').value = value;
    }

}
</script>
于 2015-12-09T01:53:51.247 に答える