Vue小練習(xí):購(gòu)物車偎窘,全選蝇闭,復(fù)選框

整段代碼如下

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>checked復(fù)選框測(cè)試(購(gòu)物車)</title>
        <style type="text/css">
            .books {
                border: none;
                border-collapse: collapse;
            }

            th,
            td {
                border: 1px solid #DDDDDD;
                padding: 10px;
                width: 50px;
                text-align: center;
            }

            th:nth-child(2),
            td:nth-child(2) {
                width: 200px;
            }

            .btn-clear {
                padding: 2px 15px;
                border: 1px solid #DDDDDD;
                margin: 20px;
                outline: none;
                background-color: rgba(9, 120, 78, 0.7);
                color: white;
            }

            .btn-del {
                border: none;
                background: transparent;
                outline: none;
            }

            td:last-child:hover {
                cursor: pointer;
                background-color: #DDDDDD;
            }
        </style>
    </head>
    <body>
        <div id="app">

            <div class="bookList" v-if="books.length>0">
                <table border="none" class="books">
                    <tr>
                        <th>
                            <input type="checkbox" v-model="checkedAll" @change="checkAll" />
                        </th>
                        <th>書(shū)名</th>
                        <th>價(jià)格</th>
                        <th>頁(yè)數(shù)</th>
                        <th>操作</th>
                    </tr>
                    <tr v-for="(item,index) in books" :key="index">
                        <td>
                            <input type="checkbox" v-model="item.checked" @change="itemChange(index)" />
                        </td>
                        <td>{{item.name}}</td>
                        <td>{{item.price}}</td>
                        <td>{{item.pages}}</td>
                        <td>
                            <button class="btn btn-del" @click="delBook(index)">刪除</button>
                        </td>
                    </tr>
                </table>
                <div class="sumMsg">
                    <button class="btn btn-clear" @click="clear">清空</button>
                    <span>商品總價(jià)為:{{sumPrice}}</span>
                </div>
            </div>
            <div class="empty" v-else>
                購(gòu)物車為空
            </div>

        </div>
        <script src="../js/vue.js"></script>
        <script type="text/javascript">
            const app = new Vue({
                el: '#app',
                data: {
                    checkedAll: false,
                    books: [{
                            name: 'JAVA編程',
                            price: 188,
                            pages: 200,
                            checked: false
                        },
                        {
                            name: 'C++編程',
                            price: 108,
                            pages: 120,
                            checked: false
                        },
                        {
                            name: 'Python編程',
                            price: 118,
                            pages: 220,
                            checked: false
                        },
                        {
                            name: 'Vue編程',
                            price: 98,
                            pages: 240,
                            checked: true
                        }
                    ]
                },
                methods: {
                    checkAll() {
                        this.books.forEach(item => {
                            item.checked = this.checkedAll
                        })
                    },
                    itemChange(index) {
                        const preCheckedAll = this.checkedAll
                        if (!this.books[index].checked) {
                            this.checkedAll = false
                        } else {
                            this.checkedAll=!this.books.some(item => !item.checked)
                        }
                    },
                    delBook(index) {
                        this.books.splice(index, 1)
                    },
                    clear() {
                        this.books.splice(0)
                    }
                },
                computed: {
                    sumPrice() {
                        let sumPrice = 0
                        this.books.forEach(item => {
                            if (item.checked) {
                                sumPrice += item.price
                            }
                        })
                        return sumPrice
                    }
                }
            })
        </script>
    </body>
</html>

頁(yè)面顯示效果


實(shí)現(xiàn)內(nèi)容

1.全選/全不選
2.計(jì)算已選商品總價(jià)
3.刪除指定商品
4.清空購(gòu)物車


效果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末零如,一起剝皮案震驚了整個(gè)濱河市躏将,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌埠况,老刑警劉巖耸携,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異辕翰,居然都是意外死亡夺衍,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門喜命,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)沟沙,“玉大人河劝,你說(shuō)我怎么就攤上這事∶希” “怎么了赎瞎?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)颊咬。 經(jīng)常有香客問(wèn)我务甥,道長(zhǎng),這世上最難降的妖魔是什么喳篇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任敞临,我火速辦了婚禮,結(jié)果婚禮上麸澜,老公的妹妹穿的比我還像新娘挺尿。我一直安慰自己,他們只是感情好炊邦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布编矾。 她就那樣靜靜地躺著,像睡著了一般馁害。 火紅的嫁衣襯著肌膚如雪窄俏。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天蜗细,我揣著相機(jī)與錄音裆操,去河邊找鬼怒详。 笑死炉媒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的昆烁。 我是一名探鬼主播吊骤,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼静尼!你這毒婦竟也來(lái)了白粉?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鼠渺,失蹤者是張志新(化名)和其女友劉穎鸭巴,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拦盹,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹃祖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了普舆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恬口。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡校读,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出祖能,到底是詐尸還是另有隱情歉秫,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布养铸,位于F島的核電站雁芙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏钞螟。R本人自食惡果不足惜却特,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望筛圆。 院中可真熱鬧裂明,春花似錦、人聲如沸太援。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)提岔。三九已至仙蛉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碱蒙,已是汗流浹背荠瘪。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赛惩,地道東北人哀墓。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像喷兼,于是被迫代替她去往敵國(guó)和親篮绰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355