用JavaScript做簡易的購物車

下面是我做的一個(gè)超簡單的購物車,全部都是用原生js做的.有問題可以找我哦!

css

<style>
        table{
            text-align: center;

        }
        table img{
            width: 50px;
        }
    a {
        text-decoration: none;
        color: red;
}
    </style>

body

<table border="1" cellspacing="0">
      <thead>
      <tr>
          <th>全選 <input type="checkbox" id="ckAll"/></th>
          <th>商品</th>
          <th>單價(jià)</th>
          <th>數(shù)量</th>
          <th>操作</th>
      </tr>
      </thead>
      <tbody>
          <tr>
              <td><input type="checkbox" name="ck"/></td>
              <td>![](../img2/1.png)</td>
              <td>3</td>
              <td><input type="number" max="10" min="0" step="1" value="2"/></td>
              <td><a href="javascript:void(0);" class="del">刪除</a></td>
          </tr>
          <tr><td><input type="checkbox" name="ck"/></td>
              <td>![](../img2/2.png)</td>
              <td>3</td>
              <td><input type="number" max="10" min="0" step="1" value="3"/></td>
              <td><a href="javascript:void(0);" class="del">刪除</a></td>


          </tr>
          <tr><td><input type="checkbox" name="ck"/></td>
              <td>![](../img2/3.png)</td>
              <td>3</td>
              <td><input type="number" max="10" min="0" step="1" value="1"/></td>
              <td><a href="javascript:void(0);" class="del">刪除</a></td>


          </tr></tbody>
      <tfoot>
      <tr>
          <td colspan="3" align="right">總價(jià):</td>
          <td colspan="2"></td>
      </tr>
      </tfoot>

  </table>
  <a href="javascript:void(0);" class="dels">刪除選中項(xiàng)</a>

js

<script>
        window.onload=function(){
            document.getElementById("ckAll").onclick=function(){//當(dāng)點(diǎn)擊全選的復(fù)合框時(shí)觸發(fā)事件
               var cks = document.getElementsByName("ck");//獲取ck對(duì)象
              for(var i=0;i<cks.length;i++){ //循環(huán)得到單個(gè)tr
                   cks[i].checked=this.checked; //得到的每個(gè)tr的點(diǎn)擊都等于ckAll的點(diǎn)擊
              }
          }
           var cks =  document.getElementsByName("ck");//創(chuàng)建ck對(duì)象
            for(var i=0;i<cks.length;i++){ //循環(huán)得到單個(gè)tr
                cks[i].onclick=function(){ // 當(dāng)點(diǎn)擊每個(gè)當(dāng)tr的時(shí)候都會(huì)觸發(fā)點(diǎn)擊事件
                       for(var i=0;i<cks.length;i++){// 循環(huán)得到單個(gè)td
                           if(!cks[i].checked){ //如果單個(gè)特點(diǎn)的點(diǎn)擊等于false 就返回
                               document.getElementById("ckAll").checked = false;//那么ckAll就等于false
                               return;
                           }
                       }
                    document.getElementById("ckAll").checked = true;//否則就等于true 說明為全選狀態(tài)
                }
            }
            getSum();
             function getSum(){ //計(jì)算的方法
                   var tbody = document.getElementsByTagName("tbody")[0];//創(chuàng)建tbody對(duì)象
                    var sum =0;//先定義sum為0
                     for(var i =0;i<tbody.children.length;i++){ //循環(huán)得到tr
                         var tr  = tbody.children[i]; //tbody中的子節(jié)點(diǎn)就是tr
                          var td = tr.children; //tr的子節(jié)點(diǎn)是 td
                          var price = parseFloat(td[2].innerText);//td的第二列是價(jià)格 得到價(jià)格
                          var count = parseFloat(td[3].children[0].value); //第三列是數(shù)量
                          sum+=price*count; //總和就等于價(jià)格*數(shù)量
                         td[3].children[0].onblur=function(){ //當(dāng)失去焦點(diǎn)的時(shí)候觸發(fā)事件
                             getSum();
                         }
                     }
                  var tfoot = document.getElementsByTagName("tfoot")[0]; //創(chuàng)景tfoot對(duì)象
                 tfoot.children[0].children[1].innerHTML =sum; //tfootd子節(jié)點(diǎn)  等于總和
             }

           var dels = document.getElementsByClassName("del");//創(chuàng)建del對(duì)象
            for(var i = 0;i<dels.length;i++){//循環(huán)得到
                dels[i].onclick=function(){
                    this.parentNode.parentNode.remove();
                    getSum();
                }
            }
            document.getElementsByClassName("dels")[0].onclick=function(){
                 var cks = document.getElementsByName("ck");
                for(var i = cks.length-1;i>=0;i--){
                     if(cks[i].checked){
                         cks[i].parentNode.parentNode.remove();
                     }
                }
                getSum();

            }

        }
</script>
效果圖
這個(gè)購物車是在學(xué)習(xí)js時(shí)做的,比較簡單,但基本功能還是有的:
  • 可以全選,單個(gè)選擇.
  • 可以單個(gè)的刪除,刪除選中項(xiàng).
  • 總計(jì)可以根據(jù)數(shù)量的變化而變化.
    大家用在線的編輯器查看一下效果會(huì)更好.
    如果有問題的話,可以隨時(shí)交流... (過兩天會(huì)用jQury在做一個(gè)購物車的例子)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末馋吗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子只搁,更是在濱河造成了極大的恐慌豆挽,老刑警劉巖粤铭,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡怖侦,警方通過查閱死者的電腦和手機(jī)教藻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門距帅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人括堤,你說我怎么就攤上這事碌秸。” “怎么了悄窃?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵讥电,是天一觀的道長。 經(jīng)常有香客問我轧抗,道長恩敌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任横媚,我火速辦了婚禮纠炮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘分唾。我一直安慰自己抗碰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布绽乔。 她就那樣靜靜地躺著弧蝇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上看疗,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天沙峻,我揣著相機(jī)與錄音,去河邊找鬼两芳。 笑死摔寨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的怖辆。 我是一名探鬼主播是复,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼竖螃!你這毒婦竟也來了淑廊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤特咆,失蹤者是張志新(化名)和其女友劉穎季惩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腻格,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡画拾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了菜职。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片青抛。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖酬核,靈堂內(nèi)的尸體忽然破棺而出脂凶,到底是詐尸還是另有隱情,我是刑警寧澤愁茁,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站亭病,受9級(jí)特大地震影響鹅很,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜罪帖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一促煮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧整袁,春花似錦菠齿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春疾棵,著一層夾襖步出監(jiān)牢的瞬間戈钢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國打工是尔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留殉了,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓拟枚,卻偏偏與公主長得像薪铜,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子恩溅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫隔箍、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,059評(píng)論 4 62
  • 1 白果第一次見到秦先生的時(shí)候,并不知道秦先生姓秦每窖,只是因?yàn)樗_了一張白色攬勝帮掉,西裝筆挺,深藍(lán)色的西裝配酒紅色帶花...
    有信仰的正能量閱讀 433評(píng)論 0 2
  • 本文結(jié)合我自己的經(jīng)驗(yàn)窒典,總結(jié)下電商產(chǎn)品在初始階段到成熟期每一階段應(yīng)該關(guān)注的點(diǎn)蟆炊,不同產(chǎn)品會(huì)有所不同: 第一步:產(chǎn)品基礎(chǔ)...
    Chris_M閱讀 331評(píng)論 0 0
  • #整理# 首先聲明,微信這種不能在pc端訂閱和閱讀瀑志,一定要在移動(dòng)設(shè)備上閱讀如此富文本形式的文章的訂閱模式涩搓,只能說是...
    馬小驢閱讀 638評(píng)論 0 1