【问题标题】:Array Push Function not working correctly数组推送功能无法正常工作
【发布时间】:2019-06-14 01:13:43
【问题描述】:

问题很简单,我试图将值推送到数组中,但它每次都会创建新的值而不是添加我尝试了很多方法来做同样的事情,你可以在这里检查代码我实际上在做什么

$(function(){
        // Append Theme Pages
 let counter = 2;    
 $(".js-append-pages").on("click", function(){
        $(".js-pages-append-area").append(
            `<div class="input-field col xs12 s6">
                    <input name="page_${counter}" id="page_${counter}" type="text" class="validate">
                    <label for="page_${counter}">Page Name</label>
                </div>
                <div class="file-field input-field col xs12 s6">
                    <div class="btn">
                        <span>Image</span>
                        <input type="file">
                    </div>
                    <div class="file-path-wrapper">
                        <input name="page_${counter}_img" class="file-path validate" type="text">
                    </div>
                </div>`);

                let inputArr = ["page_1"];

            inputArr.push(`page_${counter}`);
            console.log(inputArr);

                counter++;
 });

})

【问题讨论】:

  • 每次单击时,都会执行let inputArr = ["page_1"];,因此每次单击时都会重新初始化 inputArr 变量。如果您不想这样做,请不要将该代码放在点击处理程序中
  • 不把点击处理程序放在里面我怎么能做一些任务
  • 其实我明白你的意思,你是对的,只需要放这个 - let inputArr = ["page_1"];代码之外的thanx给我你宝贵的时间

标签: javascript jquery arrays arraylist


【解决方案1】:
    $(function (){

    let counter = 1;
    let inputArr = ["page_1"];

    $(".js-append-pages").on("click", function ()
    {
        $(".js-pages-append-area").append(
            `<div class="input-field col xs12 s6">
                <input name="page_${counter}" id="page_${counter}" type="text" class="validate">
                <label for="page_${counter}">Page Name</label>
            </div>
            <div class="file-field input-field col xs12 s6">
                <div class="btn">
                    <span>Image</span>
                    <input type="file">
                </div>
                <div class="file-path-wrapper">
                    <input name="page_${counter}_img" class="file-path validate" type="text">
                </div>
            </div>`);

        inputArr.push(`page_${++counter}`);
        console.log(inputArr);

    });
});

这应该是一个更好的实现方式。

【讨论】:

  • thanx 但我们已经在上面讨论过这个问题,你也是对的
猜你喜欢
  • 1970-01-01
  • 2017-09-23
  • 2020-12-01
  • 2020-11-10
  • 1970-01-01
  • 2016-06-19
相关资源
最近更新 更多