第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 splice() 根據(jù)索引從數(shù)組中刪除值

使用 splice() 根據(jù)索引從數(shù)組中刪除值

BIG陽(yáng) 2022-07-15 09:46:20
我有 4 個(gè)復(fù)選框。我在檢查時(shí)將它們的值添加到數(shù)組中。它看起來(lái)像這樣。這是我擁有的四個(gè)復(fù)選框。<input type="checkbox" value="degree"><input type="checkbox" value="pgd"> <input type="checkbox" value="hnd"> <input type="checkbox" value="advdip">一旦我檢查了所有四個(gè),數(shù)組就變成了,["degree", "pgd", "hnd", "advdip"]當(dāng)我取消選中一個(gè)復(fù)選框時(shí),我需要根據(jù)其正確的索引號(hào)從數(shù)組中刪除它的值。我用過(guò)splice(),但它總是刪除第一個(gè)索引,即degree. 無(wú)論我取消選擇哪個(gè)復(fù)選框,我都需要根據(jù)其索引號(hào)從數(shù)組中刪除該值。希望有人幫忙。下面是代碼。提前致謝!<input type="checkbox" value="degree">    <input type="checkbox" value="pgd">     <input type="checkbox" value="hnd">     <input type="checkbox" value="advdip"><script>        function getLevels() {             // get reference to container div of checkboxes            var con = document.getElementById('course-levels');            // get reference to input elements in course-levels container            var inp = document.getElementsByTagName('input');            // create array to hold checkbox values            var selectedValues = [];            // collect each input value on click            for (var i = 0; i < inp.length; i++) {                // if input is checkbox                if (inp[i].type === 'checkbox') {                    // on each checkbox click                    inp[i].onclick = function() {                        if ($(this).prop("checked") == true) {                            selectedValues.push(this.value);                            console.log(selectedValues);                        }                        else if ($(this).prop("checked") == false) {                            // get index number                            var index = $(this).index();                            selectedValues.splice(index, 1);                            console.log(selectedValues);                        }                    }                }            }        }        getLevels();    </script>
查看完整描述

4 回答

?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊

您使用錯(cuò)誤的方法在代碼中查找索引。如果您使用元素索引,它將避免數(shù)組中的實(shí)際索引并給出錯(cuò)誤的輸出。檢查下面的代碼,它可能適合您的要求。


 <input type="checkbox" value="degree">

    <input type="checkbox" value="pgd"> 

    <input type="checkbox" value="hnd"> 

    <input type="checkbox" value="advdip">


    <script src="https://code.jquery.com/jquery-3.5.0.min.js" integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ=" crossorigin="anonymous"></script>

<script>


        function getLevels() {

             // get reference to container div of checkboxes

            var con = document.getElementById('course-levels');

            // get reference to input elements in course-levels container

            var inp = document.getElementsByTagName('input');


            // create array to hold checkbox values

            var selectedValues = [];


            // collect each input value on click

            for (var i = 0; i < inp.length; i++) {

                // if input is checkbox

                if (inp[i].type === 'checkbox') {

                    // on each checkbox click

                    inp[i].onclick = function() {

                        if ($(this).prop("checked") == true) {


                            selectedValues.push(this.value);

                            console.log(selectedValues);

                        }

                        else if ($(this).prop("checked") == false) {

                            // get index number

                            var index = selectedValues.indexOf(this.value);


                            selectedValues.splice(index, 1);

                            console.log(selectedValues);


                        }

                    }

                }

            }



        }


        getLevels();


    </script>


查看完整回答
反對(duì) 回復(fù) 2022-07-15
?
長(zhǎng)風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

我的方法是添加一個(gè)事件處理程序,該處理程序在單擊任何這些輸入時(shí)讀取所有檢查值,并在記錄響應(yīng)之前清空數(shù)組。無(wú)需為此添加任何依賴(lài)項(xiàng)


希望這是您正在尋找的


function getLevels() {

  let checkboxContainer = document.getElementById("checkboxContainer");

  let inputs = checkboxContainer.querySelectorAll("input");

  let checked = [];

  inputs.forEach( (input) => {

    checked = [];

    input.addEventListener( 'click', () => {

      checked = [];

      inputs.forEach( (e) => {

        e.checked ? checked.push(e.value) : null;

      })

      console.log(checked);

    });

  });

}


getLevels();

<div id="checkboxContainer">

  

  <input type="checkbox" value="degree" >

  <input type="checkbox" value="pgd"> 

  <input type="checkbox" value="hnd"> 

  <input type="checkbox" value="advdip">

</div>


查看完整回答
反對(duì) 回復(fù) 2022-07-15
?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

將更改處理程序添加到輸入并使用 jQuery map 來(lái)獲取檢查輸入的值。


var levels

$('#checkArray input').on('change', function () {

  levels = $('#checkArray input:checked').map(function () {

    return this.value

  }).get()

  console.log(levels)

}).eq(0).change()

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<fieldset id="checkArray">

  <input type="checkbox" value="degree" checked>

  <input type="checkbox" value="pgd">

  <input type="checkbox" value="hnd">

  <input type="checkbox" value="advdip">

</fieldset>


查看完整回答
反對(duì) 回復(fù) 2022-07-15
?
www說(shuō)

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊

我不知道這是否是您需要的,以顯示所選值的數(shù)組,如果您愿意,您可以調(diào)用計(jì)算支票的函數(shù)。


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>

<fieldset id="checkArray">

  <input type="checkbox" value="degree" checked>

  <input type="checkbox" value="pgd">

  <input type="checkbox" value="hnd">

  <input type="checkbox" value="advdip">

</fieldset>

<button onclick="getLevels()">getLevels</button>


<script>

  function getLevels() {

    var levels = [];

    $.each($("input:checked"), function() {

      levels.push(($(this).val()));

    });

    console.log(levels);

  }

  getLevels();

</script>


查看完整回答
反對(duì) 回復(fù) 2022-07-15
  • 4 回答
  • 0 關(guān)注
  • 375 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)