• 24.VUE学习之-变异方法filter与regexp实现评论搜索功能


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <!--<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
    <div id="hdcms">
        <li v-for="(v,k) in comments">
            {{v.id}} - {{v.content}}
            <button v-on:click="remove(k)">删除</button>
        </li>
        <textarea v-model="current_content" cols="30" rows="10"></textarea><br>
        <button v-on:click="push('end')">发表到后面</button>
        <button v-on:click="push('pre')">发表到前面</button>
        <br>
        <button v-on:click="del('last')">删除最后一条评论</button>
        <button v-on:click="del('first')">删除第一条评论</button>
        <br>
        <button v-on:click="sort()">按照编号排序</button>
        <button v-on:click="reverse()">反转顺序</button>
        <br>
        <!--按输入的内容筛选出需要的内容-->
        <input type="text" v-on:keyup.enter="search" v-model="search_content">
        <li v-for="(v,k) in comments">
            {{v.id}} - {{v.content}}
            <button v-on:click="remove(k)">删除</button>
        </li>
    </div>
    <script>
        var app = new Vue({
            el: '#hdcms',
            data: {
                //搜索内容
                search_content:'',
                //当前用户输入内容
                current_content: '',
                comments: [
                    {id: 2, content: 'HDPHP'},
                    {id: 4, content: 'HDCMS'},
                    {id: 1, content: '后盾人'},
                    {id: 3, content: '向军老师'},
                ]
            },
            methods: {
                search(){
    
                    //filter是循环comments里的内容,逐条按下面的规则匹配
                    this.comments = this.comments.filter((item)=>{
    
                        <!--按输入的内容筛选出需要的内容-->
                        console.log(this.search_content);
                        var reg  = new RegExp(this.search_content,'i'); //i不区分大小写
                        return reg.test(item.content); //返回能匹配上的数据
    
                    })
    
    
                },
                sort(){
                    this.comments.sort(function (a, b) {
                        return a.id > b.id;
                    })
                },
                reverse(){
                    this.comments.reverse();
                },
                remove(k){
                    this.comments.splice(k, 1);
                },
                push(type){
                    var id = this.comments.length+1;
                    var content = {id:id,content: this.current_content}
                    switch (type) {
                        case 'end':
                            this.comments.push(content);
                            break;
                        case 'pre':
                            this.comments.unshift(content);
                            break;
                    }
                    this.current_content = '';
                },
                del(type){
                    switch (type) {
                        case 'last':
                            this.comments.pop();
                            break;
                        case 'first':
                            this.comments.shift();
                            break;
                    }
                }
            }
        });
    </script>
    </body>
    </html>
    

    效果:

    [Haima的博客] http://www.cnblogs.com/haima/
  • 相关阅读:
    atom 安装插件列表
    django学习
    windows 安装 python3
    python3 监控代码变化 自动重启 提高开发效率
    git无法pull仓库refusing to merge unrelated histories
    python 项目部署virtualenv
    python 多线程并发threading & 任务队列Queue
    python logging 日志使用
    jupyter 教程
    mysql 替换数据库字段内容
  • 原文地址:https://www.cnblogs.com/haima/p/10237429.html
Copyright © 2020-2023  润新知