簡體   English   中英

如何在 JS 中組合這些功能

[英]How Can I Combine This Functions in JS

它增加了星級評分的總票數。 如果點擊 1 星,則增加投票 +1,如果點擊 5 星,則增加 5。我該如何組合它們?

    function incrementValue1() {
    var value = parseInt(document.getElementById('ratecount').value, 10);
value = isNaN(value) ? 0 : value;
value++;
    document.getElementById('ratecount').value = value;
}
function incrementValue2() {
    var value = parseInt(document.getElementById('ratecount').value, 10);
value = isNaN(value) ? 0 : value;
value+=2;
    document.getElementById('ratecount').value = value;
}
function incrementValue3() {
    var value = parseInt(document.getElementById('ratecount').value, 10);
value = isNaN(value) ? 0 : value;
value+=3;
    document.getElementById('ratecount').value = value;
}
function incrementValue4() {
    var value = parseInt(document.getElementById('ratecount').value, 10);
value = isNaN(value) ? 0 : value;
value+=4;
    document.getElementById('ratecount').value = value;
}
function incrementValue5() {
    var value = parseInt(document.getElementById('ratecount').value, 10);
value = isNaN(value) ? 0 : value;
value+=5;
    document.getElementById('ratecount').value = value;
}

將增量值作為參數傳遞給一個 function,如:

function incrementValue(amt) {
    var value = parseInt(document.getElementById('ratecount').value, 10);
    value = isNaN(value) ? 0 : value;
    value+=amt;
    document.getElementById('ratecount').value = value;
}

只需在 function 中添加一個參數,指示該值增加多少。

function incrementValue(increment) {
    var value = parseInt(document.getElementById('ratecount').value, 10);
    value = isNaN(value) ? 0 : value;
    value += increment;
    document.getElementById('ratecount').value = value;
}
incrementValue(1);//increment by 1
incrementValue(5);//increment by 5

您需要做的就是利用函數中的參數,這些參數是在調用 function 時傳遞給它的數據。 該數據(參數)可用作 function 中的局部變量。

在這種情況下,您將傳遞需要增加的數量,因為所有這些函數中的其他所有內容都是相同的:

 // You should get your element references just once, not // everytime the function is called: let rateCount = document.getElementById('ratecount'); // This function is declared in a way that makes it // expect some data will be passed to it when it is // invoked and that data will be accessible within // the function using the parameter name defined // by the function declaration (amount in this case) function incrementValue(amount) { var value = parseInt(rateCount.value, 10); value = isNaN(value)? 0: value; value += amount; // Use the passed in amount rateCount.value = value; } incrementValue(16);
 <input id="ratecount">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM