欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue - 动态添加移除 DOM元素(输入框示例)

程序员文章站 2022-03-04 17:15:27
...

效果图

该示例代码简洁干净,可直接复制运行查看效果。

Vue 动态添加移除 DOM 元素,基于此示例可拓展为自身业务逻辑。
Vue - 动态添加移除 DOM元素(输入框示例)

完整代码

引入 Vue 采用 CDN 形式 ,如已经失效请自行引入。

新建 *.html 复制以下代码,浏览器运行查看效果即可。

<body>
    <div id="body">
        
        <!-- 默认框 -->
        <div>
            姓名: <input v-model="temp.params[0].key">
            手机:<input v-model="temp.params[0].value">
            <button @click="addParams()">+</button>
        </div>
        <!-- END -->

        <!-- 动态添加框 -->
        <div v-for="num in total" :key="num">
            姓名: <input v-model="temp.params[num].key">
            手机:<input v-model="temp.params[num].value">
            <button @click="delParams(num)">-</button>
        </div>
        <!-- END -->
		
		
		<!-- 数据动向 -->
        {{ temp.params }}
        <br>
        {{ total }}
        <!-- END -->
    </div>
</body>

<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script>
<script>
const vm = new Vue({

    el: '#body',
    data: {
        temp: {
            params: [
                // 默认存在的输入框(+)
                { key:'', value:'' },
                
                // 手动添加的输入框(-)
                // ...
            ]
        },
        // 总共添加了多少个
        total: 0
    },

    methods: {

        /**
         * 添加项目
         * 追加数据且总数+1
         * @return void
         */
        addParams: function()
        {
            this.temp.params.push({key:'', value:''})
            this.total ++
        },

        /**
         * 移除项目
         * 移除数据且总数-1
         * @param {Number} num - 索引值
         * @return void
         */
        delParams: function(num)
        {
            this.temp.params.splice(num, 1)
            this.total --
        }
    }
})
</script>
相关标签: + Vue