• 函数传参课后练习—JS学习笔记2015-6-7(第51天)


    老师的课后作业练习,看代码(最贵价格那个没有实现):

      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      5 <title>J函数传参——商品价格计算</title>
      6 </head>
      7 
      8 <body>
      9 <ul id="list">
     10     <li>
     11       <input type="button" value="-" />
     12     <strong>0</strong>
     13       <input type="button" value="+" />
     14     单价:<em>12.5元</em>
     15     小计:<span>0元</span>
     16   </li>
     17     <li>
     18       <input type="button" value="-" />
     19     <strong>0</strong>
     20       <input type="button" value="+" />
     21     单价:<em>10.5元</em>
     22     小计:<span>0元</span>
     23   </li>
     24     <li>
     25       <input type="button" value="-" />
     26     <strong>0</strong>
     27       <input type="button" value="+" />
     28     单价:<em>8.5元</em>
     29     小计:<span>0元</span>
     30   </li>
     31     <li>
     32       <input type="button" value="-" />
     33     <strong>0</strong>
     34       <input type="button" value="+" />
     35     单价:<em>8元</em>
     36     小计:<span>0元</span>
     37   </li>
     38     <li>
     39       <input type="button" value="-" />
     40     <strong>0</strong>
     41       <input type="button" value="+" />
     42     单价:<em>14.5元</em>
     43     小计:<span>0元</span>
     44   </li>
     45 </ul>
     46 
     47 <p>商品合计共:<big id='sum'>0</big></p>
     48 <p>共花费了:<big id='totalSpend'>0</big></p>
     49 <p>其中最贵的商品单价是:<big id='maxPrice'>0</big></p>
     50 
     51 
     52 
     53 <script>
     54     var oUl = document.getElementById('list');
     55     var aLi = oUl.getElementsByTagName('li');
     56     var oSum = document.getElementById('sum');
     57     var oTotal = document.getElementById('totalSpend');
     58     var oMaxPrice = document.getElementById('maxPrice');    
     59     var aPack = document.getElementsByTagName('strong');
     60     var aSpan = document.getElementsByTagName('span');
     61     var aEm = document.getElementsByTagName('em');
     62     
     63     // var num = 0; 如果是写在外面就不可以,这时候cunses函数里面是访问不到外面的num,所以就累加了这时候返回的值就是点击后的累加值。
     64  
     65     function census(){
     66         var num = 0; // 这里要写在函数体内,oSum才生效
     67         var tt = 0;
     68         var max = 0;
     69         for(var j=0; j<aPack.length; j++){
     70             
     71             num += Number(aPack[j].innerHTML); // 为什么这里是加等于,而减去按钮也实现了效果??
     72             tt += parseFloat(aSpan[j].innerHTML);
     73             if(tt!=0){ // tt不等于0,表明确实买了
     74                 max = parseFloat(aEm[j].innerHTML); 
     75             }
     76         };
     77         oSum.innerHTML = num;
     78         oTotal.innerHTML = tt;
     79         oMaxPrice.innerHTML = max;
     80     }
     81     
     82     // fnCount ( aLi[0] );
     83     for ( var i=0; i<aLi.length; i++ ) {
     84         fnCount ( aLi[i] );
     85     }
     86     
     87     function fnCount ( oli ) {  
     88         var aBtn = oli.getElementsByTagName ('input');
     89         var oStrong = oli.getElementsByTagName ('strong')[0];
     90         var oEm = oli.getElementsByTagName ('em')[0];
     91         var oSpan = oli.getElementsByTagName ('span')[0];
     92         var n = oStrong.innerHTML;            // 产品的数量
     93         var price = parseFloat(oEm.innerHTML);            // 产品的单价命名
     94         
     95         aBtn[0].onclick = function () {
     96             if ( n > 0 ) {
     97                 n--;
     98             }
     99             oStrong.innerHTML = n;
    100             oSpan.innerHTML = n*price + '';
    101             census();
    102         };
    103         aBtn[1].onclick = function () {
    104             n++;
    105             oStrong.innerHTML = n;
    106             oSpan.innerHTML = n*price + '';
    107             census();
    108         };
    109        
    110        
    111     }
    112 
    113 </script>
    114 
    115 </body>
    116 </html>
    View Code
  • 相关阅读:
    Linux下的输入/输出重定向
    strcpy与strncpy的区别
    C++的函数重载
    gtest 学习二
    gtest 学习一
    char* wchar* char wchar转换
    iconv 编译不通过问题
    嵌入式常用库
    驱动编程class_create说明
    libiconv 交叉编译
  • 原文地址:https://www.cnblogs.com/zhangxg/p/4559941.html
Copyright © 2020-2023  润新知