zoukankan      html  css  js  c++  java
  • vue作业2

    """
    2、现有以下成绩单数据
    scores = [
        { name: 'Bob', math: 97, chinese: 89, english: 67 },
        { name: 'Tom', math: 67, chinese: 52, english: 98 },
        { name: 'Jerry', math: 72, chinese: 87, english: 89 },
        { name: 'Ben', math: 92, chinese: 87, english: 59 },
        { name: 'Chan', math: 47, chinese: 85, english: 92 },
    ]
    用table表格标签渲染以上数据,表格第一列是学生总分排名,最后一列是学生总分;
    """"
    <!DOCTYPE html>
    <html lang="zh">
    <head>
        <meta charset="UTF-8">
        <title>1</title>
    </head>
    <body>
        <div id="app">
            <table border="1" style="margin: auto" rules="all">
                <tr>
                    <th>排名</th>
                    <th>姓名</th>
                    <th>数学</th>
                    <th>语文</th>
                    <th>英语</th>
                    <th>总分</th>
                </tr>
                <!--有几个人,就循环渲染几行-->
                <tr v-for="(score, i) in scores">
                    <td>{{ i + 1 }}</td>
                    <td v-for="v in score">{{v}}</td>
                </tr>
            </table>
        </div>
    </body>
    <script src="vue.js"></script>
    <script>
        `
        let scores = null;
        $.ajax({
            url:'',
            success(response) {
                scores = response.data
            }
        });
        `;
        // 模拟当前页面加载成功,从后台获取操作的数据
        let scores = [
            { name: 'Bob', math: 97, chinese: 89, english: 67 },
            { name: 'Tom', math: 67, chinese: 52, english: 98 },
            { name: 'Jerry', math: 72, chinese: 87, english: 89 },
            { name: 'Ben', math: 92, chinese: 87, english: 59 },
            { name: 'Chan', math: 47, chinese: 85, english: 92 },
        ];
        // 补充:for in遍历的是取值关键 | for of遍历的是值
        // 添加总分
        for (score of scores) {
            score.total = score.math + score.chinese + score.english;
        }
        // console.log(scores);
        // 按照总分排序
        for (let i=0; i<scores.length-1; i++) {
            for (let j=0; j<scores.length-1-i; j++) {
                if (scores[j].total < scores[j+1].total) {
                    let temp = scores[j];
                    scores[j] = scores[j+1];
                    scores[j+1] = temp;
                }
            }
        }
        console.log(scores);
    
        new Vue({
            el: '#app',
            data: {
                // 属性名与值为变量的变量名相同,可以简写省略值
                scores,
            }
        })
    </script>
    </html>
    """
    3、还是采用上方相同的数据,采用相同的渲染规则,只渲染所有科目都及格了的学生。
    """
    <!DOCTYPE html>
    <html lang="zh">
    <head>
        <meta charset="UTF-8">
        <title>3</title>
        <style>
            .active {
                background-color: pink;
            }
        </style>
    </head>
    <body>
        <div id="app">
            <div style=" 400px; margin: 20px auto">
                <button @click="subject = 'math'" :class="{active: subject === 'math'}">数学</button>
                <button @click="subject = 'chinese'" :class="{active: subject === 'chinese'}">语文</button>
                <button @click="subject = 'english'" :class="{active: subject === 'english'}">英语</button>
                <input type="number" min="0" max="100" v-model="min">
                ~
                <input type="number" min="0" max="100" v-model="max">
            </div>
    
            <table width="400" border="1" style="margin: auto" rules="all">
                <tr>
                    <th>排名</th>
                    <th>姓名</th>
                    <th>数学</th>
                    <th>语文</th>
                    <th>英语</th>
                    <th>总分</th>
                </tr>
                <tbody v-if="subject === 'math'">
                    <tr v-for="(score, i) in scores" v-if="score.math>=min && score.math<=max || (!min || !max)">
                        <td>{{ i + 1 }}</td>
                        <td v-for="v in score">{{v}}</td>
                    </tr>
                </tbody>
                <tbody v-else-if="subject === 'chinese'">
                    <tr v-for="(score, i) in scores" v-if="score.chinese>=min && score.chinese<=max || (!min || !max)">
                        <td>{{ i + 1 }}</td>
                        <td v-for="v in score">{{v}}</td>
                    </tr>
                </tbody>
                <tbody v-else-if="subject === 'english'">
                    <tr v-for="(score, i) in scores" v-if="score.english>=min && score.english<=max || (!min || !max)">
                        <td>{{ i + 1 }}</td>
                        <td v-for="v in score">{{v}}</td>
                    </tr>
                </tbody>
                <tbody v-else>
                    <tr v-for="(score, i) in scores">
                        <td>{{ i + 1 }}</td>
                        <td v-for="v in score">{{v}}</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </body>
    <script src="vue.js"></script>
    <script>
        `
        let scores = null;
        $.ajax({
            url:'',
            success(response) {
                scores = response.data
            }
        });
        `;
        // 模拟当前页面加载成功,从后台获取操作的数据
        let scores = [
            { name: 'Bob', math: 97, chinese: 89, english: 67 },
            { name: 'Tom', math: 67, chinese: 52, english: 98 },
            { name: 'Jerry', math: 72, chinese: 87, english: 89 },
            { name: 'Ben', math: 92, chinese: 87, english: 59 },
            { name: 'Chan', math: 47, chinese: 85, english: 92 },
        ];
        // 补充:for in遍历的是取值关键 | for of遍历的是值
        // 添加总分
        for (score of scores) {
            score.total = score.math + score.chinese + score.english;
        }
        // console.log(scores);
        // 按照总分排序
        for (let i=0; i<scores.length-1; i++) {
            for (let j=0; j<scores.length-1-i; j++) {
                if (scores[j].total < scores[j+1].total) {
                    let temp = scores[j];
                    scores[j] = scores[j+1];
                    scores[j+1] = temp;
                }
            }
        }
        console.log(scores);
    
        new Vue({
            el: '#app',
            data: {
                // 属性名与值为变量的变量名相同,可以简写省略值
                scores,
                min: '',
                max: '',
                subject: '',
            }
        })
    </script>
    </html>
    
    
  • 相关阅读:
    第二十八节-3d 盒子(transform transition )炫酷操作
    第二十七节-动画animation以及与transform的冲突
    第二十六节-transform
    transition的属性与使用,绝对定位初始值要设0,以及淡入淡出,消失
    阿里图标与iframe框架
    第二十二节-表格
    第二十一节-表单元素2以及input一些使用习惯和伪类 点击按钮换图片且有淡入淡出的效果
    第二十节-重要表单(form 与 input) 、label 标签
    案例-京东小按钮
    复合写法需要注意的
  • 原文地址:https://www.cnblogs.com/ghylpb/p/12057632.html
Copyright © 2011-2022 走看看