分享
三行代码  ›  专栏  ›  技术社区  ›  Justin

无法在Javascript中复制不同数组中的按钮数组

  •  0
  • Justin  · 技术社区  · 1 周前

    我不明白为什么这不存储上一个数组的副本。

    console.log(buttons);
    
    var copybtns = [];
    for (let i = 0; i < buttons.length; i++) {
    copybtns = buttons[i];
        
    }
    
    console.log(copybtns);
    

    enter image description here

    我枯燥的html代码

    <body>
        <div class="container">
            <form action="">
                <select name="changecolor" id="background" onchange="changeToRed(this)">
                    <option value="Random">Random</option>
                    <option value="Red"">Red</option>
                    <option value="Blue">Blue</option>
                    <option value="Black">Black</option>
                    <option value="Reset">Reset</option>
                </select>
            </form>
            <button>0</button>
            <button class="btn btn-primary">1 </button>
            <button class="btn btn-danger">2</button>
            <button class="btn btn-dark">3</button>
            <button class="btn btn-warning">4</button>
        </div>
    </body>
    

    我在看一个辅导班,但写了同样的代码,但我不知道为什么它不起作用

    enter image description here

    1 回复  |  直到 1 周前
        1
  •  1
  •   AlwaysHelping    1 周前

    你可以简单地使用 forEach 函数使用 querySelectorAll copybtns

    小提琴演示: https://jsfiddle.net/efxwbtyu/

    //get all buttons
    let buttons = document.querySelectorAll('button')
    
    //Original buttons
    console.log(buttons)
    
    //store
    var copybtns = [];
    
    //foreach
    buttons.forEach((data) => copybtns.push(data))
    
    //log the array data
    console.log(copybtns);
    <button>0</button>
    <button class="btn btn-primary">1 </button>
    <button class="btn btn-danger">2</button>
    <button class="btn btn-dark">3</button>
    <button class="btn btn-warning">4</button>