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/
  • 相关阅读:
    LINUX重启MYSQL的命令
    如何在linux下实现mysql数据库每天自动备份
    mysql 2013错误解决
    mysql按年度、季度、月度、周、日统计查询的sql语句
    MySQL 时间戳(Timestamp)函数
    jQuery 选择器大全总结
    使用Git的Push出现rejected
    js实现分页的几个源码,看完基本就懂了
    Get,Post请求中文乱码问题有效解决方法
    web应用中文乱码问题的原因分析
  • 原文地址:https://www.cnblogs.com/haima/p/10237429.html
Copyright © 2011-2022 走看看