zoukankan      html  css  js  c++  java
  • JavaScript基础

    一、Js的数据类型

      Js的数据类型有五种: (1)undefined: 例如var age 定义一个年龄的变量,没有初始值,将被赋予undefined值

                                               (2)null:表示空值,与undefined相等

                 (3)  number:表示数值 可以定义整数 浮点数 例如 :var source=3 或 var source=4.5;

                 (4)  Boolean 布尔值 true 和false

                 (5)  String :字符串

    二、Js的运算符有四种:         (1)  算术运算符 +, -, *, /, %, ++, --

                   (2)  赋值运算符 :=

                   (3) 比较运算符: >,<, >=,<=,==,!=

                 (4) 逻辑运算符: &&,||,!

    三、用Js操作Bom和Dom

      1.Js的组成:(1)ECMAScript :简单的说这是一种Js的语法规范

          (2)Bom:是浏览器的对象模型 提供了独立内容与浏览器的交互的对象

          (3)Dom :是文档对象模型 定义的一套标准方法,用来访问 HTML的文档;

      2.Bom的基本组成

        (1)window:对象窗口,用来控制当前窗口 或者打开窗口

          弹窗之警告框:window.alert

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <button onclick="myFunction()">点我</button>
    </body>
    </html>
    <script>
        /*alert()*/
        function myFunction(){
            alert("你好,我是一个警告框!")
        }
        /*myFunction();*/
    </script>

          弹窗之确认框:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <button onclick="myFunction()">点我</button>
        <p id="demo"></p>
    </body>
    </html>
    <script>
        function myFunction(){
        var x;
        var r=confirm("按下按钮!");
        if (r==true){
            x="你按下了【确定】按钮!";
        }
        else{
            x="你按下了【取消】按钮!";
        }
        document.getElementById("demo").innerHTML=x;
    }
    </script>

          弹窗之输入框:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <button onclick="myFunction()">点我</button>
        <p id="demo"></p>
    </body>
    </html>
    <script>
    function myFunction(){
        var x;
        var person=prompt("请输入你的名字","Harry Potter");
        if (/*person!=null && */person!=""){
            x="你好 " + person + "! 今天感觉如何?";
            document.getElementById("demo").innerHTML=x;
        }
    }
    </script>

        (2)screen屏幕对象,获取屏幕的相关信息

        (3)navigator浏览器对象,通过这个对象,判定用户所使用的的浏览器

        (4)history历史对象,可以用来前进和后退一个页面

      (5)localtion地址对象,可以用来获取当前的URL的信息

        

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <input type="button" value="加载新文档" onclick="newDoc()">
    </body>
    </html>
    <script>
        document.write(location.href);
        document.write(location.pathname);
        function newDoc(){
              window.location.assign("http://www.w3cschool.cc")
        }
    </script>

        (6)Js的计时时间,在设定的时间间隔后来执行代码,而不再函数被调用后执行

          情况一:定时一定的间隔一直弹出

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <input type="button" value="弹出" onclick="start()">
        <input type="button" value="停止弹出" onclick="stop()">
    </body>
    </html>
    <script>
        var flag;
        function start(){
            flag=window.setInterval("alert('间隔1s后完成弹出内容');",1000);
        }
        function stop(){
            window.clearInterval(flag);
        }
    </script>

            情况二: 延迟一定时间去执行

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <p>点击按钮,在等待 3 秒后弹出 "Hello"。</p>
        <button onclick="myFunction()">点我</button>
    </body>
    </html>
    <script>
        function myFunction(){
            setTimeout(function(){alert("Hello")},3000);
        }
    </script>

        (7)localStorageAessionStorage存储对象为了更大容量的存储设计的

      3.操作Dom

        1.查找html元素

          (1).document.getElementById("id名");通过标签id属性名获取对象

            (2).document.getElementsByClassName("class名")通过标签class属性名获取对象
            (3).document.getElementsByName("标签名")通过标签名获取对象

          

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <button id="btn">点我</button>
        <button class="btn3">点我</button>
        <button class="btn3">点我</button>
    </body>
    </html>
    <script>
        //var btn=document.getElementById("btn");
        //var btn2=document.getElementsByTagName('button');
        var btn3=document.getElementsByClassName('btn3')[1];
        btn3.onclick=function(){
            alert("1");
        }
    
    </script>

    改变Css属性

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <p id="p">改变HTML</p>
        <img id="image" src="img/1.jpg" alt="" width="200" height="200">
    </body>
    </html>
    <script>
        document.write("niha");
        document.getElementById("p").innerHTML="哈哈哈哈";
        document.getElementById("image").src="img/border.png";
        document.getElementById("p").style.background="#ccc";
    </script>

     四、js的实现购物车的案例

      创建html代码

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>购物车</title>
    <script src="js/gwc.js"></script>
    <link href="css/gouwu.css" rel="stylesheet" type="text/css" />
    </head>
    
    <body>
    <div id="page">
    <div id="listdiv"> <h4>购物车</h4>
       <table width="750" cellpadding="0" cellspacing="0" id="gwcTable">
        <tr>
          <td width="79"><input type="checkbox" id="checkAll"  onclick="quanxuan()"/>全选</td>
          <td width="175">商品</td>
          <td width="92">单价</td>
          <td width="201">数量</td>
          <td width="96">小计</td>
          <td width="79">操作</td>
        </tr>
        <tr>
          <td><input type="checkbox" class="checkCss"/></td>
          <td><p><img src="images/shouji.jpg" /></p><p>华为手机P8</p></td>
          <td>2000</td>
          <td class="count"><input class="reduceCss" id="jia1" value="-" type="button " onclick="minus(0)"/>
              <input type="text" class="inputCountCss" id="inputCountCss1" value="1" size="8"/>
              <input class="addCss" id="jia2" value="+" type="button" onclick="plus(0)"/></td>
          <td class="stotal3">2000</td>
          <td><a href="#"  class="a" onclick="rem('jia1')">删除</a></td>
        </tr>
        <tr>
          <td><input type="checkbox" class="checkCss" /></td>
          <td><p><img src="images/cfy.jpg"/></p><p>玫红色 女款 冲锋衣外套</p></td>
          <td>600</td>
          <td class="count"><input class="reduceCss" id="jia3" value="-" type="button" onclick="minus(1)"/>
              <input type="text" class="inputCountCss" id="inputCountCss2" value="1" size="8"/>
              <input class="addCss" id="jia4" value="+" type="button" onclick="plus(1)"/></td>
          <td class="stotal3">600</td>
          <td><a href="#"  class="a" onclick="rem('jia3')">删除</a></td>
        </tr>
        <tr>
          <td><input type="checkbox" class="checkCss" /></td>
          <td><p><img src="images/tbx.jpg"/></p>
          <p>女款 防滑透气 徒步鞋</p></td>
          <td >200</td>
          <td class="count"><input class="reduceCss" id="jia5" value="-" type="button" onclick="minus(2)"/>
              <input type="text" class="inputCountCss" id="inputCountCss3" value="1" size="8"/>
              <input class="addCss" id="jia6" value="+" type="button" onclick="plus(2)"/></td>
          <td class="stotal3">200</td>
          <td><a href="#" class="a" onclick="rem('jia5')">删除</a></td>
        </tr>
      </table>
      </div>
      <div id="jiesuan">
        <div class="t jisuanbtn">
          <input type="submit" name="btnOrder" id="btnOrder" value="立即结算" />
        </div>
        <div class="t TotalMoney">合计:¥<span id="priceTotal">0.00</span></div>
        <div class="t">已选商品 <span id="countTotal">0</span></div>   
      </div>
    </div>
    </body>
    </html>

        编写Css样式

    @charset "utf-8";
    #page {
        width: 750px;
        margin:0 auto;
        text-align: center;
    }
    table {    border: 1px solid #CCC;}
    #jiesuan{    height:50px;    background-color: #CCC;}
    #jiesuan .t{width:130px;float:right;margin:10px;line-height:30px;}
    td{    text-align:center;    border: 1px solid #CCC;}
    #btnOrder {    background-color: #F3C;    height: 30px;    width: 100px;font-size: 16px;letter-spacing: normal;    border: medium none;}
    .inputCountCss {    text-align: center;}
    .count{padding-left:40px;}
    .count input{height:21px;}
    .count .addCss,.count input ,.count .reduceCss{float:left;}
    .count .addCss,.count .reduceCss{height:23px;width:27px;border:1px solid #e5e5e5;background:#f0f0f0;text-align:center;line-height:23px;color:#444;float:left;}
    img{width:80px;height:80px; align:absmiddle;}

    Js实现

        window.onload=function(){
            var check=document.getElementsByClassName("checkCss");//获取所有复选框为其添加单击事件
            for (i=0;i<check.length;i++) {
                check[i].onclick=function(){
                    getprice();
                    pd();
                }
            }
        }
        //创建全选和反选
        function quanxuan(){
            if((document.getElementById("checkAll").checked)){
                var check=document.getElementsByClassName("checkCss");
                for(i=0;i<check.length;i++){
                    check[i].checked=true;
                    
                }
                getprice();
                
            }else{
                var check=document.getElementsByClassName("checkCss");
                for(i=0;i<check.length;i++){
                    check[i].checked=false;
                }
                getprice();
            }
        }
        //动态的改变金额和数量
        function getprice(){
            var counts=document.getElementById("countTotal")//获取总件数件数
            var prices=document.getElementById("priceTotal")//获取总金额
            var count=document.getElementsByClassName("inputCountCss");//或取每个商品选择的件数
            var price=document.getElementsByClassName("stotal3")//获取每个商品的小计
            var check=document.getElementsByClassName("checkCss");//获取所有复选框
            var sum=0;//定义总金额
            var con=0
             for (i=0;i<check.length;i++) {
                 if((check[i].checked)){
                    con+=parseInt(count[i].value);
                    sum+=parseInt(price[i].innerText)*parseInt(count[i].value);
                }
             }
             counts.innerText=con;
             prices.innerText=sum;
        }
    //减操作
    function minus(num){
    nums=parseInt(num);
        if(parseInt(document.getElementsByClassName("inputCountCss")[num].value)==1){
            alert("不能再减了")
        }else{
            if(nums===0){
                    //数量 小计
                    var q=document.getElementsByClassName("inputCountCss")[num]
                    q.value=parseInt(q.value)-1;
                    //小计金额
                    var price4=document.getElementsByClassName("stotal3")[num];
                    price4.innerText=(parseInt(q.value)*2000)
                }
                if(nums===1){
                    var q=document.getElementsByClassName("inputCountCss")[num]
                    q.value=parseInt(q.value)-1;
                    var price5=document.getElementsByClassName("stotal3")[num];
                    price5.innerText=(parseInt(q.value)*600)
                }
                if(nums===2){
                    var q=document.getElementsByClassName("inputCountCss")[num]
                    q.value=parseInt(q.value)-1;
                    var price6=document.getElementsByClassName("stotal3")[num];
                    price6.innerText=(parseInt(q.value)*200)
                }
        }
        getprice();
    }
    //加操作
    function plus(num){
        nums=parseInt(num);
        
        if(nums===0){
                //数量 小计
                var q=document.getElementsByClassName("inputCountCss")[num]
                q.value=parseInt(q.value)+1;
                //小计金额
                var price4=document.getElementsByClassName("stotal3")[num];
                price4.innerText=(parseInt(q.value)*2000)
            }
            if(nums===1){
                var q=document.getElementsByClassName("inputCountCss")[num]
                q.value=parseInt(q.value)+1;
                var price5=document.getElementsByClassName("stotal3")[num];
                price5.innerText=(parseInt(q.value)*600)
            }
            if(nums===2){
                var q=document.getElementsByClassName("inputCountCss")[num]
                q.value=parseInt(q.value)+1;
                var price6=document.getElementsByClassName("stotal3")[num];
                price6.innerText=(parseInt(q.value)*200)
            }
        getprice();
    }    
    //删除操作
    function rem(id){
        var tr=document.getElementById(id).parentNode.parentNode
        tr.parentNode.removeChild(tr);
        getprice();
    }
    //如果全部复选框全部为true 全选框为true
    function pd(){
        var count=0;
        var check=document.getElementsByClassName("checkCss");//获取所有复选框
        var ch=document.getElementById("checkAll");
        for(i=0; i<check.length;i++){
            if(check[i].checked){
                count++;
            }
        }
        if(count==check.length){
            ch.checked=true;
        }else{
            ch.checked=false;
        }
    }
  • 相关阅读:
    linux addr2line 定位so库崩溃位置
    转:关于Android机型适配这件小事儿
    转:android studio 改编译区背景色
    转:ios review推送与执行
    k2pdfopt下载页
    转:让kindle更好的支持pdf
    转:各种文本格式转换的网站
    转: iOS崩溃堆栈符号表使用与用途
    转: 腾讯Bugly干货分享:Android应用性能评测调优
    转: git的图文使用教程(巨详细)
  • 原文地址:https://www.cnblogs.com/wuxuewei/p/11177444.html
Copyright © 2011-2022 走看看