zoukankan      html  css  js  c++  java
  • 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/
  • 相关阅读:
    JavaScript之美读书笔记一
    关于form与表单操作
    正则表达式中的字符转义
    [codeforces 391D2]Supercollider
    [AMPPZ 2013]Bytehattan
    [那些你所不知道的鬼畜写法]平衡树学习笔记
    [AHOI 2006][BZOJ 1269]文本编辑器editor
    [BZOJ 3622]已经没有什么好害怕的了
    [POI 2008]Mafia
    [POI 2008][BZOJ 1132]Tro
  • 原文地址:https://www.cnblogs.com/haima/p/10237429.html
Copyright © 2011-2022 走看看