簡體   English   中英

在發送到localstorage之前如何合並復選框值?

[英]How do i combine checkbox values before sending to localstorage?

我想用空格分隔符將復選框的值存儲localStorage中。 當我檢查AB並按保存按鈕時,將其另存為

["A","B"]

如果我檢查A,B和C並按下按鈕,數組將變為

["A","B","A","B","C"]

我試圖獲得的輸出應該是

["A B","A B C"]

這是我的代碼:

<body>
    <div class="container">
        <input type="checkbox" class="checks" value="A"> A<br>
        <input type="checkbox" class="checks" value="B"> B<br>
        <input type="checkbox" class="checks" value="C"> C<br>
        <br><br>
        <a href="#" onclick="getValue();return false;">Get Value</a>

        <script>
            function getValue() {
            var myArray = !!localStorage.getItem('str') ? JSON.parse(localStorage.getItem('str')): [];
            var checks = document.querySelectorAll('.checks:checked');

            if(!checks.length) return; 

            for (i = 0; i < checks.length; i++) {
            myArray.push(checks[i].value);
            }
            localStorage.setItem('str',JSON.stringify(myArray));
            console.log('str', myArray.join(' '));

            }

        </script>
    </div>
</body>

在將陣列保存到本地存儲之前,您無需加入陣列。

將當前答案收集到一個新數組( myChecks中為myChecks )中,然后將其添加到myArray然后再保存到localStorage

注意: stackoverflow的代碼段阻止了localStorage的使用。 我已經注釋了使用localStorage的行,並且在演示中使用了外部myArray變量。 要在您的代碼中使用,請取消注釋讀取和寫入localStorage的行,並刪除var myArray = []

 var myArray = []; // only for the demo function getValue() { var checks = document.querySelectorAll('.checks:checked'); var myChecks = []; if (!checks.length) return; for (i = 0; i < checks.length; i++) { myChecks.push(checks[i].value); } //var myArray = !!localStorage.getItem('str') ? JSON.parse(localStorage.getItem('str')) : []; myArray.push(myChecks.join(' ')); //localStorage.setItem('str', JSON.stringify(myArray)); console.log('str', JSON.stringify(myArray)); } 
 <div class="container"> <input type="checkbox" class="checks" value="A"> A<br> <input type="checkbox" class="checks" value="B"> B<br> <input type="checkbox" class="checks" value="C"> C<br> <br><br> <a href="#" onclick="getValue();return false;">Get Value</a> </div> 

暫無
暫無

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

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