前端学习之路—html标签、css、js

一、HTML标签

  1. head标签中

      • <meta> — 编码,跳转,刷新,关键字,描述,IE兼容
      • <title> — 加标题显示内容
      • <link> — 加小图标
      • <style> — 写css样式
      • <script> — 写js动态效果

  2. body标签中

    1)特殊符号:

      空格:&nbsp;      大于号:&gt;      小于号:&lt;      参考网址:www.cnblogs.com/web-d/archive/2010/04/16/1713298.html

    2)常用标签(块级标签/行内标签):

        # 块级标签:

        • 换行:<br>
        • 段落:<p></p>
        • h标签:<h1></h1> — <h6></h6>
        • div标签:<div></div>
        • form标签:<form></form>
        • 列表标签:ul ol dl
                无序标签                    <ul>                        <li></li>                        <li></li>                    </ul>                有序标签                    <ol>                        <li></li>                        <li></li>                    </ol>
                错位标签                    <dl>                        <dt>1</dt>                        <dd>1.1</dd>                        <dd>1.2</dd>                        <dd>1.3</dd>                    </dl>                    <dl>                        <dt>2</dt>                        <dd>2.1</dd>                        <dd>2.2</dd>                        <dd>2.3</dd>                    </dl>
        • 表格标签:thead tbody tr td th colspan rowspan
                    <table border="1">                    <thead>                        <tr>                            <th>表头1</th>                            <th>表头2</th>                            <th>表头3</th>                        </tr>                    </thead>                    <tbody>                        <tr>                            <td>第二行,第一列</td>                            <td>第二行,第二列</td>                            <td>第二行,第三列</td>                        </tr>                        <tr>                            <td rowspan="2">第三行,第一列,纵向合并单元格</td> <!--删除纵向多的个数-->                            <td colspan="2">第三行,第二列,横向合并单元格</td> <!--删掉横向多的个数-->

        </tr>                        <tr>

         <td>第四行,第二列</td>                            <td>第四行,第三列</td>                        </tr>                    </tbody>                  </table>        

        # 行内标签:

        • span标签:<span></span>(行内标签设置高度宽度没有用,要用display:inline-block)
                      <span style="height: 200px;width: 200px;display: inline-block"></span>                      # 如果不加display:inline-block浏览器不会显示这个span这个200*200的蓝色区域
        • lable标签:for
                        <label for="username">用户名:</label>                        <input id="username" type="text" name="user"> # 点击用户名input获取光标
        • 多行文本标签:<textarea >默认值</textarea> # 有name属性,后台拿name,默认值直接写内容
        • fieldset标签:
            <fieldset>      <legend>登录</legend>  </fieldset>
        • input标签:<input> 包含的属性中含有name供后台获取的,所有的name和值是以字典形式表现的
              常用的属性                  <input type="text"> # 普通文本框                  <input type="password"> # 密码框                  <input type="button" value="登录1">                  <input type="submit" value="登录2">                  <input type="reset" value="重置"> # 重置还原                  <input type="file"> # 文件上传,依赖form表单的一个属性enctype="multipart/form-data"              单选属性                  男:<input type="radio" name="gender" value="1"> # name相同,后台拿其中一个value值                  女:<input type="radio" name="gender" value="2">              多选属性                  <p>爱好</p>                  篮球:<input type="checkbox" name="favor" value="1"> # name相同,后台获取value变为列表                  足球:<input type="checkbox" name="favor" value="2"> # 默认选中加属性checked="checked"                  排球:<input type="checkbox" name="favor" value="3">                  网球:<input type="checkbox" name="favor" value="4">                  <p>技能</p>                  撩妹:<input type="checkbox" name="skill" value="1">                  写代码:<input type="checkbox" name="skill" value="2">
        • select标签:
                单选下拉框                    <select name="city" size="3">                         <option value="1">北京</option>                        <option value="1">上海</option>                        <option value="1">广州</option>                    </select>                  另:                  <select>                       <optgroup label="山东省"> # 只能选择到下面的option                        <option>济南</option>                        <option>德州</option>                        <option>泰安</option>                    </optgroup>

        <optgroup label="河南省">                        <option>郑州</option>                        <option>商丘</option>                        <option>新郑</option>                    </optgroup>                  </select>                复选下拉框                    <select name="city" multiple>                        <option value="1">北京</option>                        <option value="1">上海</option>                        <option value="1">广州</option>                    </select>
        • a标签:<a></a>
                跳转                    <a href="http://www.baidu.com" target="_blank">百度</a> # target属性有多个                锚                    <a href="#i1">第一章</a> # 点击直接跳到第一章内容的顶部                    <a href="#i2">第二章</a>                    <a href="#i3">第三章</a>                        <div id="i1" style="height: 600px">第一章内容</div>                        <div id="i2" style="height: 600px">第二章内容</div>                        <div id="i3" style="height: 600px">第三章内容</div>
        • img标签:
                src属性:地址                alt属性:图片加载不出来时显示的名字                title属性:鼠标放上自动显示标题      

  3. 其他事项:

    注释: <!-- -->

    PS:标签之间可以嵌套

二、css样式

  1、在标签上设置style属性:          height: 48px;     ···  2、编写css样式:      1.标签的style属性      2.写在head里面,style标签中写样式          -标签选择器                    div{                        background-color: blue;                    }          -id选择器                    #id名称{                        background-color: blue;                    }          -class选择器                    .class名称{                        background-color: blue;                    }          -层级选择器                    span div{                        background-color: blue;                    } # span标签下的div标签,中间加空格,用id和class都可          -组合选择器                    #i1,#i2,#i3{                        background-color: blue;                    } # 中间用逗号          -属性选择器                    input[type=‘text‘]{                        background-color: blue;                    } # 注意用[],也可以用自定义属性          PS:标签css样式的优先级按就近原则,先标签内,后style中的顺序      3.css样式写在单独文件中          在head标签中引入<link rel="stylesheet" href="css文件名">

  3、注释:/*   */  4、边框和文本      # 边框样式      - border: 1px dotted red;      - height: 48px;      - width: 80%;      - border-top/right/left/bottom      # 文本内容样式      - color: blue;      - font-size: 20px;      - font-weight: bolder;      - text-align: center; /* 水平居中 */      - vertical-align: middle; /* 垂直居中 */      - line-height: 48px;  /* 同是垂直居中,常用这个,需要和height一样 */  5、float      让标签飘起来,让块级标签堆叠起来            <div style="width: 20%;float: left">1</div>            <div style="width: 80%;float: right">2</div>            对比上下两个            <div style="float: left">1</div>            <div style="float: right">                <a>登录</a>                <a>注册</a>            </div>            当父标签边框未撑起来是,在父标签内加入这个属性            <div style="clear:both;"></div>                   示例:                    <div style="width: 300px;border: 1px solid red;">                        <div style="width:96px;height:30px;border:1px solid green;float:left;"></div>                        <div style="width:96px;height:30px;border:1px solid green;float:left;"></div>                        <div style="width:96px;height:30px;border:1px solid green;float:left;"></div>                        <div style="width:96px;height:30px;border:1px solid green;float:left;"></div>                        <div style="width:96px;height:30px;border:1px solid green;float:left;"></div>                        <div style="width:96px;height:30px;border:1px solid green;float:left;"></div>                        <div style="width:96px;height:30px;border:1px solid green;float:left;"></div>                        <div style="clear:both;"></div>                    </div>  6、display      display:inline; # 变为行内标签      display:block # 变为块级标签      display:inline-block; # 具有inline,默认自己与多少占多少                            # 具有block,可以设置高度,宽度,padding,margin      display:none; # 隐藏标签          <div style="display: inline">asdf</div>          <span style="display: block">asdf</span>          ******          行内标签:无法设置高度,宽度,padding,margin          块级标签:可以设置高度,宽度,padding,margin  7、padding margin      边距:          padding:内边距 (自动生长)              <div style="border: 1px red solid;height: 70px;width: auto">                  <div style="height: 50px;width: auto;padding-top: 10px"></div>              </div>          margin:外边距 (自动移动) margin:0 auto;—> 表示上下为0,左右居中              <div style="border: 1px red solid;height: 70px;width: auto">                  <div style="height: 50px;width: auto;margin-top: 10px"></div>              </div>

  8、position      a、fixed          翻页保持原处          positon:fixed; 固定在当前浏览窗口的右下角          bottom:0px;          right:0px      b、relative + absolute 混合使用          用于相对位置的设置          <div style="position: relative;width: 500px;height: 200px;border: 1px solid red;margin: 0 auto">              <div style="position: absolute;left: 0;bottom: 0;height: 30px;width: 30px"></div>          </div>          <div style="position: relative;width: 500px;height: 200px;border: 1px solid red;margin: 0 auto">              <div style="position: absolute;right: 0;bottom: 0;height: 30px;width: 30px"></div>          </div>          <div style="position: relative;width: 500px;height: 200px;border: 1px solid red;margin: 0 auto">              <div style="position: absolute;left: 0;top: 0;height: 30px;width: 30px"></div>          </div>

  c、通过使用z-index和以上功能设置模态对话框(未加js)          <div style="z-index:9;position: fixed;top: 0;bottom: 0;left: 0;right: 0;              opacity:0.3;"></div> /*建立遮罩层*/          <div style="z-index:10;position:fixed;top:50%;left:50%;              margin-top: -100px;margin-left: -250px;  /*使用这两个功能把对话框调整到中间*/              height: 200px;width: 500px;"></div>  9、overflow      对比使用:          <div style="height: 100px;width: 100px;">              <img src="1.jpg">          </div>

  <div>              <img src="1.jpg" style="height: 500px;width:500px;">          </div>

  <div style="height: 100px;width: 100px;overflow: auto">              <img src="1.jpg">          </div>

  <div style="height: 100px;width: 100px;overflow: hidden">              <img src="1.jpg">          </div>  10、hover      使用方式:            .pg-header .menu:hover{

cursor: pointer; /*  鼠标移到标签上变为小手 */            }      使用示例:          <head>              <meta charset="UTF-8">              <title>Title</title>              <style>                  .pg-header{                      position: fixed;                      top: 0;                      left: 0;                      right: 0;                      height: 48px;                      background-color: #2459a2;                      line-height: 48px;                  }                  .pg_body{                      margin-top: 50px;                  }                  .w{

  width: 980px;                      margin: 0 auto;                  }                  .pg-header .menu{                      color: white;

  display: inline-block; /*  这个属性可以使标签上下充满 */                      padding: 0 10px; /* 上下为0 ,左右边距为10*/                  }                  {#当鼠标移动到当前标签上时,以下css属性才生效#}                  .pg-header .menu:hover{                      background-color: blue;                      cursor: pointer; /*  鼠标移到标签上变为小手 */                  }              </style>          </head>          <body>

  <div class="pg-header">              <div class="w">                  <a class="menu">LOGO</a>                  <a class="menu">全部</a>                  <a class="menu">42区</a>                  <a class="menu">段子</a>                  <a class="menu">1024</a>              </div>          </div>          <div class="pg_body">              <div class="w">222</div>          </div>

  </body>          </html>

  11、background-image      <div style="background-image: url(10.jpg);height: 2000px">          # 注意这里的路径url,参考https://blog.csdn.net/qq_37811638/article/details/78353409      </div> # 默认,div大,图片重复铺垫

  <div style="background-image: url(10.jpg);height: 2000px;          background-repeat: no-repeat/repeat-x/repeat-y/"></div> # 不重复;横向重复;垂直重复          以下两个属性是扣洞,让图片的位置变换          background-position-x:          background-positon-y:

三、js动态效果

基础知识    1、编程语言        独立的编程语言,浏览器具有js解释器        存在于html中

2、JavaScript代码存在形式:        - 在head中            <script>            </script>        - 保存中文件中            <script src=‘js文件路径‘></script>

PS:js代码需要放置在<body>标签内部的最下方            也可临时在浏览器的终端console中写

3、注释:        单行注释://        多行注释:/*  */

4、语法        1) 变量:            python:                name= ‘alex‘            JavaScript:                name = ‘alex‘       # 全局变量                var name = ‘alex‘   # 局部变量

2)基本数据类型:            数字                <script>                    age = 18; // 数字类型                    age = ‘18‘; // 字符串类型                    i = parseInt(age); // 字符串转换成数字                </script>            字符串                a = ‘alex‘                a.charAt(索引位置)                a.substring(起始位置,结束位置)                a.length    获取当前字符串长度                a.concat(value,...)     拼接                a.indexOf(substring,start)             子序列位置                a.lastIndexOf(substring,start)          子序列位置                a.substring(from,to)            根据索引获取子序列                a.slice(start,end)              切片                a.toLowerCase()                 大写                a.toUpperCase()                 小写                a.split(delimiter,limit)        分割            数组(类似python中的列表)                l = [11,22,33]                l.push(ele)     尾部追加元素                l.pop()         尾部获取一个元素                l.unshift(ele)  头部插入元素                l.shift()       头部移除元素                l.splice(start,deleteCount,value)   插入、删除或替换数组的元素                        l.splice(n,0,val)   指定位置插入元素                        l.splice(n,1,val)   指定位置替换元素                        l.splice(n,1)       指定位置删除元素                l.slice()   切片                l.reverse() 反转                l.join(sep) 将数组元素连接起来以构建一个字符串                l.sort()    对数组元素进行排序            字典                dict = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}            布尔类型                true                false

3)条件语句            if(条件){

}else if(条件){

}else{

}                特殊:                    if(1 === 1) # 值和类型都相等                    if(1 !== 1)                    &&  and                    ||  or

4)for循环            1、循环时,循环的元素是索引                a = [11,22,33,44]                for (var item in a){                    console.log(item); // 取值用a[item]                }

a = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}                for (var item in a){                    console.log(item) // 取值用a[item]                }            2、循环次数限定的循环                for(var i=0;i<10;i++){

}                此时不支持字典的循环

5)函数:
        普通函数:            function 函数名(a,b,c){

    }            函数名(1,2,3)        匿名函数:            setInterval(function(){                console.log(‘123‘)            },5000)        自执行函数(创建函数并且自动执行):            (function(){                console.log(arg)            })(123)

     6)序列化:        JSON.stringify() # 将对象转换为字符串        JSON.parse() # 将字符串还原成对象类型            li = [11,22,33,44]            >>(4) [11, 22, 33, 44]            new_li = JSON.stringify(li)            >>"[11,22,33,44]"            new_li            >>"[11,22,33,44]"            li = JSON.parse(new_li)            >>(4) [11, 22, 33, 44]            li            >>(4) [11, 22, 33, 44]

     7)转义:        encodeURL()             # URL将字符进行转义(将汉字转义)        decodeURL()             # URL恢复字符转义        encodeURLComponent()    # 转义URL组件中的字符(将汉字、特殊字符都转义)        decodeURLComponent()    # 给转义字符解码        escape()                # 对字符串转义        unescape()              # 给转义字符串解码        URLerror()              # 由URL的编码和解码方法抛出

    encodeURI(‘https://www.sogou.com/web?query=理解‘)            >>"https://www.sogou.com/web?query=%E7%90%86%E8%A7%A3"            new_url = encodeURI(‘https://www.sogou.com/web?query=理解‘)            >>"https://www.sogou.com/web?query=%E7%90%86%E8%A7%A3"            new_url            >>"https://www.sogou.com/web?query=%E7%90%86%E8%A7%A3"            url = decodeURI(new_url)            >>"https://www.sogou.com/web?query=理解"

    encodeURIComponent(‘https://www.sogou.com/web?query=理解‘)            >>"https%3A%2F%2Fwww.sogou.com%2Fweb%3Fquery%3D%E7%90%86%E8%A7%A3"            new_url = encodeURIComponent(‘https://www.sogou.com/web?query=理解‘)            >>"https%3A%2F%2Fwww.sogou.com%2Fweb%3Fquery%3D%E7%90%86%E8%A7%A3"            url = decodeURIComponent(new_url)            >>"https://www.sogou.com/web?query=理解"

     8)eval:        python:            val = eval(表达式)                  exec(执行代码)        JavaScript:            eval(表达式\执行代码)

     9)时间:        需要用Date类            var d = new Date()            d.get×××   # 获取×××            d.set×××   # 设置×××

     10)作用域:        # 其他语言:以代码块为作用域            public void Func(){                if(1==1){                    string name = ‘Java‘;                }                console.writeline(name);            }            Func()            // 报错        # python:以函数为作用域            情况一:                def func():                    if 1 == 1:                        name = ‘python‘                    print(name)                func()                // 成功            情况二:                def func():                    if 1 == 1:                        name = ‘python‘                func()                print(name)                // 报错        # JavaScript:            1.在JavaScript中是以函数作为作用域(除let)                function func(){                    if(1==1){                        var name = ‘js‘                    }                    console.log(name)                }                func()

    2.函数的作用域在函数未被调用之前,已经创建            3.函数的作用域存在作用域链,也是在被调用之前创建                示例一:                    xo = ‘Alex‘                    function func(){                        var xo = ‘Eric‘                        function inner(){                            var xo = ‘Tony‘                            console.log(xo)                        }                        inner()                    }                    func()// console.log由内向外找xo的值

    示例二:                    xo = ‘Alex‘                    function func(){                        var xo = ‘Eric‘                        function inner(){                            console.log(xo)                        }                        return inner;                    }                    var ret = func() // 返回的是inner地址                    ret() // 执行的是inner() 打印的是Eric

    示例三:                    xo = ‘Alex‘                    function func(){                        var xo = ‘Eric‘                        function inner(){                            console.log(xo)                        }                        var xo = ‘Tony‘                        return inner;                    }                    var ret = func() // 返回的是inner地址                    ret() // 执行的是inner() 打印的是Tony            4.函数内部局部变量提前声明(解释过程中只声明,不赋值,执行时才赋值)                示例一:                    function func(){                        console.log(xxoo)                    }                    func() // 程序直接报错                示例二:                    function func(){                        console.log(xxoo)                        var xxoo = ‘alex‘                    }                    // 解释过程中:先在func()中找到所有的局部变量声明但是不会赋值,即var xxoo;                    func() // undefined

     11)JavaScript面向对象        情况一:            function Foo(n){                this.name = n                this.sayName = function(){                    console.log(this.name)                }            }            var obj1 = new Foo(‘we‘); // 创建对象            obj1.name            obj1.sayName()

    var obj2 = new Foo(‘wee‘);            obj2.name            obj2.sayName()

    1.this代指对象,相当于python中的self            2.创建对象时,用new关键字            以上this.SayName为对象中的函数,但是此时两个对象调用时都自身创建同一个函数,            不如把函数直接封装在类中,对象调用时直接用类中的方法,由此引出情况二

    情况二:            原型的引入            function Foo(n){                this.name = n;            }            Foo.prototype = {                ‘sayName‘:function(){                    console.log(this.name)                }            } # Foo的原型            obj1 = new Foo(‘we‘)            obj1.sayName()            obj2 = new Foo(‘wee‘)
Dom(注意节点和元素两个概念)    1、找到标签        1)直接找:            获取单个元素                document.getElementById(‘i1‘)            获取多个元素(数组形式返回)                document.getElementsByTagName(‘div‘)                document.getElementsByClassName(‘cls‘)        2)间接找:            parentElement       父节点标签元素            children            所有子标签(以元组形式返回)            firstElementChild   第一个子标签元素            lastElementChild    最后一个子标签元素            nextElementSibling  下一个兄弟标签元素            previousElementSibling  上一个兄弟标签元素

2、操作标签
    a. innerText(仅文本)        获取标签中的文本内容            tag.innerText        对标签内部文本进行重新赋值            tag.innerText = ‘‘    b. innerHTML(全部内容)        可以获取嵌套标签的内的标签        obj.innerHTML = (‘<a href=‘http://www.baidu.com‘>百度</a>‘)

    示例:        document.getElementById(‘i2‘)        >><div id=?"i2">?我是i2?</div>?        document.getElementById(‘i2‘).innerText        >>"我是i2"        document.getElementById(‘i2‘).innerText = ‘新内容‘        >>"新内容"        document.getElementsByTagName(‘a‘)        >>HTMLCollection(3) [a, a, a]        document.getElementsByTagName(‘a‘)[1]        >><a>?hjkl?</a>?        document.getElementsByTagName(‘a‘)[1].innerText        >>"hjkl"        document.getElementsByTagName(‘a‘)[1].innerText = ‘换新内容‘        >>"换新内容"        li = document.getElementsByTagName(‘a‘)        >>HTMLCollection(3) [a, a, a]        for (var i=0;i<li.length;i++){li[i].innerText = ‘循环换新内容‘}        >>"循环换新内容"    c. value        用于input、select、textarea 可以获取内部值        select还有一个selectIndex

    搜索框示例(类似placeholder=""):

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <button onclick="f1()">确定</button>
 9 <div id="ni" style="color: red">你好</div>
10
11 <input id="i1" onfocus="f2()" onblur="f3()" type="text" value="请输入关键字">
12
13
14 <script>
15     function f1() {
16         alert(123)
17     }
18
19     function f2() {
20         var tag = document.getElementById(‘i1‘);
21         var vl = tag.value;
22         if (vl == "请输入关键字"){
23             tag.value = ‘‘
24         }
25         console.log(1)
26     }
27     function f3() {
28         var tag = document.getElementById(‘i1‘);
29         var val = tag.value;
30         if (val.length == 0){
31             tag.value = ‘请输入关键字‘
32         }
33         console.log(2)
34     }
35 </script>
36
37 </body>
38 </html>

    d. className        操作class属性名称            tag.className = ‘c1‘ // 直接命名和修改class样式名(以字符串返回)            tag.classList        // 获取class样式名(以数组返回)                tag.classList.add(‘c2‘) // 增加class样式名                tag.classList.remove(‘c1‘)  // 删除class样式名    f. style        ① 直接在标签内部或head中写        ② 在script中获取标签后写入            var obj = document.getElementById(‘i1‘)            obj.style.fontSize = 16px;(把原生style中的属性改为驼峰式)            obj.style.backgroundColor = ‘red‘;            obj.style.color = red;    g. 属性操作        var obj = document.getElementById(‘i1‘)        obj.setAttribute(‘name‘,‘Alex‘)        obj.removeAttribute(‘value‘)        obj.attributes    h. 创建标签        其一:以字符串形式        其二:以对象的方式        示例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <p><button onclick="addEle1()">+</button></p>
 9 <p><button onclick="addEle2()">+</button></p>
10
11 <div id="i1">
12     <p><input type="text"></p>
13 </div>
14
15 <script>
16
17     function addEle1() {
18         // 创建一个标签
19         // 将标签添加到i1里面
20         var tag = "<p><input type=‘text‘></p>";
21         document.getElementById(‘i1‘).insertAdjacentHTML(‘beforeEnd‘,tag);
22         // 注意:第一个参数有四个:‘beforeBegin‘、‘afterBegin‘、‘beforeEnd‘、‘afterEnd‘
23     }
24
25     function addEle2() {
26         var tag = document.createElement(‘input‘)
27         tag.setAttribute(‘type‘,‘text‘)
28         tag.style.border = ‘1px solid red‘;
29
30         var p =document.createElement(‘p‘);
31         p.appendChild(tag);
32
33         document.getElementById(‘i1‘).appendChild(p)
34     }
35
36
37 </script>
38
39
40 </body>
41 </html>


    i. checkbox        获取值            checkbox对象.checked        设置值            checkbox对象.checked = true    j. 提交表单(通过DOM)        在DOM中任何标签都可以提交数据        document.getElementById(‘i1‘).submit()    k. 其他        console.log()        alert()        confirm()        location.href       # 获取当前url        location.href = ‘‘  # 设置当前url        location.reload()   # 页面刷新

    ------------        setInterval(funciton(){},5000) # 设置定时器

    var obj = setInterval(funciton(){            console.log(1)            clearInterval(obj) # 清除定时器        },5000)        -------------        setTimeout(function(){            console.log(‘timeout‘)        },5000) # 表示5秒钟后执行一次就结束        clearTimeout()            示例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <div id="i1"></div>
 9 <input type="button" onclick="func()" value="删除">
10
11 <script>
12
13     function func() {
14         var tag = document.getElementById(‘i1‘);
15         tag.innerText = ‘已删除‘;
16         setTimeout(function () {
17             tag.innerText = ‘‘;
18         },3000)
19     }
20
21
22 </script>
23
24 </body>
25 </html>


事件
    1、常用事件:        onclick、onblur、onfocus、onmouseover、onmouseout等

    2、绑定事件:        方式一:直接标签绑定(初级程序员事件绑定)            <div onclick="函数()"></div>            <script>                function 函数(){                    ...                }            </script>        方式二:先获取Dom对象,然后绑定(中级程序员事件绑定)            document.getElementById(‘i1‘).onclick = function(){                console.log(123)            }            示例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <table border="1px" width="300px">
 9     <tr>
10         <th>1</th>
11         <th>1</th>
12         <th>1</th>
13     </tr>
14
15     <tr>
16         <th>2</th>
17         <th>2</th>
18         <th>2</th>
19     </tr>
20
21     <tr>
22         <th>3</th>
23         <th>3</th>
24         <th>3</th>
25     </tr>
26 </table>
27
28
29 <script>
30     var mytags = document.getElementsByTagName(‘tr‘)
31     // console.log(mytags)
32     for (var i=0;i<mytags.length;i++){
33         mytags[i].onmouseover = function () {
34             this.style.backgroundColor = ‘red‘;
35         }
36     }
37
38     for (var i=0;i<mytags.length;i++){
39         mytags[i].onmouseout = function () {
40             this.style.backgroundColor = ‘‘;
41         }
42     }
43
44
45
46
47 </script>
48
49
50 </body>
51 </html>


方式三:多事件绑定(高级程序员事件绑定)            document.getElementById(‘i1‘).addEventListener(‘click‘,function(){console.log(‘aaa‘),false})            document.getElementById(‘i1‘).addEventListener(‘click‘,function(){console.log(‘bbb‘),false})

示例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8
 9 <button id="bt">确定</button>
10
11 <script>
12     document.getElementById(‘bt‘).addEventListener(‘click‘,function () {console.log(‘aaa‘)},false);
13     document.getElementById(‘bt‘).addEventListener(‘click‘,function () {console.log(‘bbb‘)},false)
14
15
16 </script>
17
18
19 </body>
20 </html>


            示例(注意冒泡[false]和捕捉[true]):

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8
 9 <div id="main" style="height: 400px;width: 300px;background-color: red">
10     <div id="content" style="height: 200px;width: 150px;background-color: blue"></div>
11 </div>
12
13 <script>
14     var mymain = document.getElementById(‘main‘);
15     var mycontent = document.getElementById(‘content‘);
16     mymain.addEventListener(‘click‘,function () {console.log(‘mian‘)},false); // 此时为冒泡,从下到上
17     // mymain.addEventListener(‘click‘,function () {console.log(‘mian‘)},true); // 此时为捕捉,从上到下
18     mycontent.addEventListener(‘click‘,function () {console.log(‘content‘)},false)
19     // mycontent.addEventListener(‘click‘,function () {console.log(‘content‘)},true)
20 </script>
21
22 </body>
23 </html>


        注意:this的使用,当前触发事件的标签            a. 第一种绑定方式                <input id=‘i1‘ type=‘button‘ onclick=‘ClickOn(this)‘>                function ClickOn(self){                    // self 当前点击的标签                }                示例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8
 9     <div onclick="f1(this)">确定</div>
10
11 <script>
12     function f1(self) {
13         self.innerText = ‘取消‘;
14         self.style.backgroundColor = ‘red‘;
15     }
16
17 </script>
18 </body>
19 </html>


            b. 第二种绑定方式                <input id=‘i1‘ type=‘button‘>                document.getElementById(‘i1‘).onclick = function(){                    // this 代指当前点击的标签                }

c. JavaScript词法分析                <script>                    function func(age){                        console.log(age);                        var age = 27;                        console.log(age);                        function age(){                            console.log(age);                        }                    }                    func(3);                </script>                调用函数前有个活动对象(active object)按以下规则进行分析:                    1.形式参数                    2.局部变量                    3.函数声明表达式                拿以上为例:                    1.形式参数                        未调用之前                        AO.age = undefined;                        调用之后                        AO.age = 3;                    2.局部变量                        AO.age = undefined;                    3.函数声明表达式                        AO.age = funciton()
    3、示例:        模态对话框、多选、反选:

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <style>
  7         .shade{
  8             position: fixed;
  9             top: 0;
 10             bottom: 0;
 11             right: 0;
 12             left: 0;
 13             background-color: black;
 14             opacity: 0.5;
 15             z-index: 10;
 16         }
 17         .hide{
 18             display: none;
 19         }
 20         .module{
 21             height: 300px;
 22             width: 500px;
 23             background-color: white;
 24             position: fixed;
 25             top: 50%;
 26             left: 50%;
 27             margin-left: -250px;
 28             margin-top: -150px;
 29             z-index: 11;
 30         }
 31     </style>
 32 </head>
 33 <body>
 34 <h1>实现模态对话框和全选、反选、取消功能</h1>
 35 <hr>
 36 <br>
 37 <br>
 38 <div>
 39     <span><button onclick="AddShade()">添加</button></span>
 40     <span><button onclick="ChooseAll()">全选</button></span>
 41     <span><button onclick="CancelAll()">取消</button></span>
 42     <span><button onclick="ReverseAll()">反选</button></span>
 43 </div>
 44
 45 <div>
 46     <table border="1">
 47         <thead>
 48             <tr>
 49                 <th>主机名</th>
 50                 <th>地址</th>
 51                 <th>选择</th>
 52             </tr>
 53         </thead>
 54         <tbody>
 55             <tr>
 56                 <td>业务一</td>
 57                 <td>192.1</td>
 58                 <td><input class="ck" type="checkbox"></td>
 59             </tr>
 60             <tr>
 61                 <td>业务二</td>
 62                 <td>192.2</td>
 63                 <td><input class="ck" type="checkbox"></td>
 64             </tr>
 65             <tr>
 66                 <td>业务三</td>
 67                 <td>192.3</td>
 68                 <td><input class="ck" type="checkbox"></td>
 69             </tr>
 70
 71         </tbody>
 72     </table>
 73 </div>
 74
 75 <div id="i1" class="shade hide">
 76     <div class="module">
 77         <button>确定</button>
 78         <button onclick="RemoveShade()">取消</button>
 79     </div>
 80 </div>
 81
 82 <script>
 83     function AddShade() {
 84         var tag = document.getElementById(‘i1‘)
 85         tag.classList.remove(‘hide‘) // 加强这里的标签内容和属性操作语句
 86
 87     }
 88     function RemoveShade() {
 89         var tag = document.getElementById(‘i1‘)
 90         tag.classList.add(‘hide‘) // 加强这里的标签内容和属性操作语句
 91     }
 92
 93     function ChooseAll() {
 94         var tags = document.getElementsByTagName(‘input‘);
 95         for (var i=0;i<tags.length;i++){
 96             tags[i].checked = true
 97         }
 98     }
 99
100     function CancelAll() {
101         var tags = document.getElementsByClassName(‘ck‘);
102         for (var i=0;i<tags.length;i++){
103             tags[i].checked = false;
104         }
105     }
106     function ReverseAll() {
107         var tags = document.getElementsByClassName(‘ck‘);
108         for (var i=0;i<tags.length;i++){
109             if(tags[i].checked==true){
110                 tags[i].checked = false
111             }else if(tags[i].checked == false) {
112                 tags[i].checked = true;
113             }
114         }
115     }
116 </script>
117
118 </body>
119 </html>

      定时器的制作:

 1 <script>
 2                 setInterval("alert(123)",2000)  // setInterval("函数名",时间间隔)
 3                                                 // 每两秒执行alert语句(可以放函数)
 4             </script>
 5
 6             用定时器做跑马灯:
 7                 <head>
 8                     <meta charset="UTF-8">
 9                     <title>Title</title>
10                 </head>
11                 <body>
12
13                 <div id="i1">-欢迎老男孩莅临指导-</div>
14
15
16                 <script>
17
18                     function func() {
19                         var tag = document.getElementById(‘i1‘)
20                         content = tag.innerText;
21                         f = content.charAt(0);
22                         l = content.substring(1,content.length)
23                         var new_content = l + f;
24                         tag.innerText = new_content;
25                     }
26
27                     setInterval(‘func()‘,500)
28
29                 </script>

     左侧菜单折叠、展开:

 1 <!DOCTYPE html>
 2
 3 <html lang="en">
 4 <head>
 5     <meta charset="UTF-8">
 6     <title>Title</title>
 7     <style>
 8         .header{
 9             height: 38px;
10             background-color: blue;
11             color: white;
12             line-height: 38px;
13             border-bottom: 0.5px solid white;
14         }
15         .hide{display: none}
16     </style>
17 </head>
18 <body>
19 <h1>实现左侧菜单折叠、展示功能</h1>
20 <hr>
21 <br>
22 <br>
23
24
25 <div>
26     <div class="item">
27         <div id="i1" class="header" onclick="ChangeMenu(‘i1‘);">菜单1</div>
28         <div class="content">
29             <div>内容1</div>
30             <div>内容1</div>
31             <div>内容1</div>
32         </div>
33     </div>
34
35     <div class="item">
36         <div id="i2" class="header" onclick="ChangeMenu(‘i2‘);">菜单2</div>
37         <div class="content">
38             <div>内容2</div>
39             <div>内容2</div>
40             <div>内容2</div>
41         </div>
42     </div>
43
44     <div class="item">
45         <div id="i3" class="header" onclick="ChangeMenu(‘i3‘);">菜单3</div>
46         <div class="content">
47             <div>内容3</div>
48             <div>内容3</div>
49             <div>内容3</div>
50         </div>
51     </div>
52
53     <div class="item">
54         <div id="i4" class="header" onclick="ChangeMenu(‘i4‘);">菜单4</div>
55         <div class="content">
56             <div>内容4</div>
57             <div>内容4</div>
58             <div>内容4</div>
59         </div>
60     </div>
61 </div>
62
63
64 <script>
65     function ChangeMenu(nid) {
66         var tag = document.getElementById(nid);
67         var item_list = tag.parentElement.parentElement.children;
68         /*
69         for (var i in item_list){
70             item_list[i].children[1].classList.add(‘hide‘)
71         }
72
73         */
74
75
76
77         for (var i=0;i<item_list.length;i++){
78             var current_tag = item_list[i].children[1]
79             current_tag.classList.add(‘hide‘)
80         }
81
82         tag.nextElementSibling.classList.remove(‘hide‘)
83
84
85     }
86 </script>
87 </body>
88 </html>

jQuery

基础知识:    模块 《===》  类库    DOM/BOM/JavaScript的集成类库    http://jquery.cuishifeng.cn

作用:    一、查找元素        # 选择器            1.id                <div id=‘i1‘></div>                $(‘#i1‘)            2.class                <div class=‘c1‘></div>                $(‘.c1‘)            3.标签                <div></div>                $(‘div‘)            4.组合                <div>                    <a id=‘a1‘></a>                </div>                <div>                    <a id=‘a2‘></a>                    <div class=‘c1‘></div>                </div>                $(‘#a1,#a2,.c1‘)            5.层级                <div id=‘c1‘>                    <p>                        <a class=‘c1‘></a>                    </p>                </div>                $(‘#c1 p .c1‘)                $(‘parent>child‘) # 只找儿子            6.属性                <a ale=‘123‘></a>                <a ale=‘456‘></a>                $(‘[alex]‘)         # 具有alex属性的所有标签                $(‘[alex="123"]‘)   # alex属性等于123的标签            7.表单                <input type=‘text‘/>                <input type=‘password‘/>                <input type=‘file‘/>                $("input[type=‘text‘]")                $(‘:text‘) # 等同于上面            8. 绑定事件                $(‘.header‘).click(function(){})        # 筛选器            $(‘#i1‘).next()         # 后一个标签            $(‘#i1‘).nextAll()      # 下面所有的            $(‘#i1‘).nextUntill(‘#i2‘) # 向下找到截止到id=i2的标签            $(‘#i1‘).prev()         # 上一个标签            $(‘#i1‘).prevAll()      # 上面所有的            $(‘#i1‘).prevUntill(‘#i1‘) # 向上找到截止到id=i1的标签            $(‘#i1‘).parent()       # 父标签            $(‘#i1‘).parents()      # 找到父亲、爷爷等到祖宗            $(‘#i1‘).parentsUntill(‘#i3‘)   # 找到祖宗辈的id=i3            $(‘#i1‘).children()     # 孩子标签            $(‘#i1‘).siblings()     # 兄弟标签            $(‘#i1‘).find(‘‘)       # 找id=i1的子子孙孙中的符合要求的标签

:first            :last            :even            :odd            ;eq(index)            :gt(index)

# 转换:            jQuery对象[0]   ==》  Dom对象            Dom对象         ==》  $(Dom对象)

二、操作元素        # 内容操作            $(‘#i1‘).text()           # 获取文本内容            $(‘#i1‘).text(‘asdf‘)     # 设置文本内容            $(‘#i1‘).html()            $(‘#i1‘).html(‘<p>asdf</p>‘) # 会解析标签            <input id=‘i2‘ type=‘text‘ value=‘请输入关键字‘/>            $(‘#i2‘).val()            # 获取值            $(‘#i2‘).val(‘你好‘)      # 设置值

# 样式操作            $(‘#i1‘).addClass(‘hide‘)            $(‘#i1‘).removeClass(‘hide‘)            $(‘#i1‘).toggleClass(‘hide‘)  # 有就去掉hide,没有就加上hide,不用判断语句了

# 属性操作            attr:专门用于做自定义属性                $(‘.c1‘).attr(‘type‘)   # 获取当前标签的类型                $(‘.c1‘).attr(‘id‘,‘i1‘)   # 设置当前标签的id=i1                $(‘.c1‘).removeAttr(‘value‘)   # 删除标签内vlue属性            prop:专门用于checkbox,radio                $(‘#i1‘).prop(‘checked‘,true)  # 选中                $(‘#i1‘).prop(‘checked‘,false)  # 取消选中

PS;                index获取索引位置

# 文档处理            $(‘#u1‘).append()       # 在id=u1标签的孩子标签后添加            $(‘#u1‘).prepend()      # 在id=u1标签的孩子标签前添加            $(‘#u1‘).after()        # 在id=u1标签后添加            $(‘#u1‘).before()       # 在id=u1标签前添加            $(‘#i1‘).remove()       # 删除当前标签

empty       # 清空内容,但标签还保留            remove      # 标签内容全部删除            clone       # 复制克隆

# CSS处理            $(‘t1‘).css(‘样式名称‘,‘样式值‘)            点赞示例:                - $(‘t1‘).append()                - setInterval()                - 透明度由强变弱                - position                - 字体大小            位置:                $(window).scrollTop()        # window代表浏览器窗口,此时代表获取滑轮高度                $(window).scrollTop(345)     # 设置滑轮高度                $(window).scrollLeft()       # 左右滑动的滑轮                $(‘div‘).scrollTop()         # 某个div标签内设置overflow属性时,获取此时div内的滑轮高度                $(‘#i1‘).offset()            # 获取指定标签在html中的坐标                $(‘#i1‘).offset().left                $(‘#i1‘).offset().top                position()                   # 在position中应用offset时,时指定标签(absolute)相对父标签(relative)的位置

尺寸:                $(‘#i1‘).height()            # 获取标签的高度 纯高度                $(‘#i1‘).innerheight()       # 获取边框 + 纯高度 + ?(待测)                $(‘#i1‘).outerheight()       # 获取边框 + 纯高度 + ?(待测)                $(‘#i1‘).outerheight(true)   # 获取边框 + 纯高度 + ?(待测)                纯高度、边框、外边距、内边距

# 事件及绑定            第一种:                $(‘.c1‘).click()            第二种:                $(‘.c1‘).bind(‘click‘,function(){})         # 绑定click事件                $(‘.c1‘).unbind(‘click‘,function(){})       # 解除绑定click事件            第三种:                $(‘.c1‘).delegate(‘a‘,‘click‘,function(){})       # 给clss=c1标签下的a标签绑定click事件                $(‘.c1‘).undelegate(‘a‘,‘click‘,function(){})     # 给clss=c1标签下的a标签解除绑定click事件                委托绑定事件,当标签新创建后并不能立即产生原来的效果时,可以用此函数绑定事件            第四种:                $(‘.c1‘).on(‘click‘,function(){})                $(‘.c1‘).off(‘click‘,function(){})            阻止事件发生:                return false                    示例:                        DOM操作下要在绑定函数的标签内加return关键字                        jQuery操作下直接在函数中加return即可

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <a onclick="return clickOn()" href="http://www.baidu.com">走你1</a>
 9 <a id="i1" href="http://www.baidu.com">走你2</a>
10
11
12 <script src="jquery-3.1.0.js"></script>
13 <script>
14     function clickOn() {
15         alert(123);
16         // return false;
17         return true;
18     }
19
20     $(‘#i1‘).click(function () {
21         alert(456);
22         return false;
23     })
24 </script>
25 </body>
26 </html>


                当页面框架加载完成之后,自动执行                $(function(){})
        扩展方法:          - $.extend      $.方法          - $.fn.extend   $(‘#i1‘).方法          (function(){              var status = 1;  // 避免有全局变量冲突,最好用自定义函数包裹          })(jQuery)          示例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8
 9 <script src="jquery-3.1.0.js"></script>
10 <script>
11
12     /* 第一种扩展方法的建立和调用    */
13     $.fn.extend({
14         ‘f1‘:function () {
15             return ‘db‘;
16         }
17     })
18     var v = $(‘#i1‘).f1();
19     alert(v)
20
21     /* 第二种扩展方法的建立和调用    */
22     $.extend({
23         ‘func‘:function () {
24             return ‘sb‘;
25         }
26     })
27     var v = $.func();
28     alert(v);
29 </script>
30 </body>
31 </html>


实例:    一、删选器功能:        - prop属性(select和checkbox中的属性)            $(:checkbox).prop(‘checked‘);       获取值            $(:checkbox).prop(‘checked‘,true);  设置值        - 批量操作            jQuery方法内置循环: $(‘:checkbox‘).xxx        - 循环功能            $(:checkbox).each(function(k){                // k为当前索引                // this是Dom对象,代指当前循环的对象                // $(this) 变为jQuery对象            })        - 三元运算            var v=条件?真值:假值

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <h1>删选器功能</h1>
 9 <hr>
10 <table id="tb" border="1 px" width="200px">
11     <div>
12         <input onclick="chooseAll()" type="button" value="全选">
13         <input onclick="reverseAll()" type="button" value="反选">
14         <input onclick="cancelAll()" type="button" value="取消">
15     </div>
16     <thead>
17         <tr>
18             <th>业务线</th>
19             <th>端口</th>
20             <th>选择</th>
21         </tr>
22     </thead>
23
24     <tbody>
25         <tr>
26             <td>开发部</td>
27             <td>192.1</td>
28             <th><input type="checkbox"></th>
29         </tr>
30         <tr>
31             <td>测试部</td>
32             <td>192.2</td>
33             <th><input type="checkbox"></th>
34         </tr>
35         <tr>
36             <td>销售部</td>
37             <td>192.3</td>
38             <th><input type="checkbox"></th>
39         </tr>
40     </tbody>
41 </table>
42
43
44
45 <script src="jquery-3.1.0.js"></script>
46 <script>
47     function chooseAll() {
48         $(‘#tb :checkbox‘).prop(‘checked‘,true);
49     }
50     function cancelAll() {
51         $(‘#tb :checkbox‘).prop(‘checked‘,false);
52     }
53     function reverseAll() {
54         $(‘#tb :checkbox‘).each(function () {
55
56             /* 第一种情况:通过Dom执行
57             // this 代指当前循环的每一个元素
58             // this 是Dom的对象
59             if (this.checked) {
60                 this.checked = false; // 由于是Dom对象,所以用这种语句
61             }else {
62                 this.checked = true;
63             }
64             */
65
66
67             /* 第二种情况:通过jQuery转换实现
68             if ($(this).prop(‘checked‘)){
69                 $(this).prop(‘checked‘,false);
70             } else {
71                 $(this).prop(‘checked‘,true);
72             }
73             */
74
75
76             /* 第三种情况:三元运算
77             var v = 条件?真值:假值 */
78             var v = $(this).prop(‘checked‘)?false:true;
79             $(this).prop(‘checked‘,v);
80
81         })
82     }
83
84 </script>
85 </body>
86 </html>


    二、左侧菜单折叠、展开功能:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .header{
 8             background-color: blue;
 9             color: white;
10         }
11         .content{
12             min-height: 50px;
13         }
14         .hide{
15             display: none;
16         }
17     </style>
18 </head>
19 <body>
20
21     <div style="height: 400px;width: 200px;border: 1px solid gray">
22         <div class="item">
23             <div class="header">标题一</div>
24             <div class="content">内容</div>
25         </div>
26         <div class="item">
27             <div class="header">标题二</div>
28             <div class="content hide">内容</div>
29         </div>
30         <div class="item">
31             <div class="header">标题三</div>
32             <div class="content hide">内容</div>
33         </div>
34
35     </div>
36
37
38     <script src="jquery-3.1.0.js"></script>
39     <script>
40         $(‘.header‘).click(function () {
41             // console.log(this);
42             // 获取某个标签的下一个标签
43             // 获取当前标签的父标签
44             // 获取所有的兄弟标签
45             // 添加样式和移除样式 $(‘#i1‘).addClass(‘hide‘)    $(‘#i1‘).removeClass(‘hide‘)
46             $(this).next().removeClass(‘hide‘);
47             $(this).parent().siblings().find(‘.content‘).addClass(‘hide‘);
48             // 以上两句可以合成一句,即jQuery支持链式编程
49
50         })
51     </script>
52 </body>
53 </html>


    三、模态对话框功能:

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <style>
  7         .shade{
  8             position: fixed;
  9             top: 0;
 10             left: 0;
 11             right: 0;
 12             bottom: 0;
 13             background-color: black;
 14             opacity: 0.6;
 15             z-index: 9;
 16         }
 17         .modal{
 18             position: fixed;
 19             top: 50%;
 20             left: 50%;
 21             width: 500px;
 22             height: 400px;
 23             background-color: white;
 24             margin-top: -250px;
 25             margin-left: -200px;
 26             z-index: 10;
 27             line-height: 400px;
 28             text-align: center;
 29         }
 30         .hide{
 31             display: none;
 32         }
 33     </style>
 34 </head>
 35 <body>
 36 <input type="button" id="bt" value="添加" onclick="addShade();">
 37 <table border="1px solid gray" width="300px">
 38     <thead>
 39         <tr>
 40             <th>业务线</th>
 41             <th>端口</th>
 42             <th>操作</th>
 43         </tr>
 44     </thead>
 45     <tbody>
 46         <tr>
 47             <td>开发部</td>
 48             <td>192.1</td>
 49             <th><a class="edit">编辑</a>|<a>删除</a></th>
 50         </tr>
 51         <tr>
 52             <td>测试部</td>
 53             <td>192.2</td>
 54             <th><a class="edit">编辑</a>|<a>删除</a></th>
 55         </tr>
 56         <tr>
 57             <td>销售部</td>
 58             <td>192.3</td>
 59             <th><a class="edit">编辑</a>|<a>删除</a></th>
 60         </tr>
 61     </tbody>
 62 </table>
 63
 64 <div class="shade hide"></div>
 65
 66 <div class="modal hide">
 67     <div>
 68         <input type="text" id="modal_i1">
 69         <input type="text" id="modal_i2">
 70
 71             <input type="button" value="确定">
 72             <input type="button" onclick="cancel()" value="取消">
 73
 74
 75     </div>
 76 </div>
 77
 78 <script src="jquery-3.1.0.js"></script>
 79 <script>
 80     function addShade() {
 81         $(‘.shade,.modal‘).removeClass(‘hide‘);
 82         // $(‘.modal‘).removeClass(‘hide‘)
 83     }
 84     function cancel() {
 85         $(‘.shade,.modal‘).addClass(‘hide‘);
 86         // $(‘.modal‘).addClass(‘hide‘)
 87     }
 88
 89     $(‘.edit‘).click(function () {
 90         $(‘.shade,.modal‘).removeClass(‘hide‘);
 91         // console.log($(this).parent().prevAll()[0]);
 92         var tds = $(this).parent().prevAll();
 93         var v1 = $(tds[0]).text();
 94         var v2 = $(tds[1]).text();
 95         // console.log(v1,v2);
 96         $(‘#modal_i1‘).val(v2);
 97         $(‘#modal_i2‘).val(v1);
 98
 99     })
100
101 </script>
102 </body>
103 </html>


    四、tab切换功能:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .menu{
 8             height: 48px;
 9             width: 700px;
10             background-color: gray;
11             line-height: 48px;
12             margin: 0 auto;
13         }
14         .menu_item{
15             float: left;
16             border-left: 1px solid red;
17             border-right: 1px solid red;
18             padding: 0 10px;
19         }
20         .content{
21             margin: 0 auto;
22             height: 600px;
23             width: 700px;
24             border: 1px solid gainsboro;
25
26         }
27         .hide{
28             display: none;
29         }
30         .active{
31             background-color: saddlebrown;
32         }
33     </style>
34 </head>
35 <body>
36
37 <div class="menu">
38     <div class="menu_item active" a="1">菜单一</div>
39     <div class="menu_item" a="2">菜单二</div>
40     <div class="menu_item" a="3">菜单三</div>
41 </div>
42
43 <div class="content">
44     <div b="1">内容一</div>
45     <div class="hide" b="2">内容二</div>
46     <div class="hide" b="3">内容三</div>
47 </div>
48
49 <script src="jquery-3.1.0.js"></script>
50 <script>
51     $(‘.menu_item‘).click(function () {
52         $(this).addClass(‘active‘).siblings().removeClass(‘active‘);
53
54
55         var target = $(this).attr(‘a‘);
56         var a = ‘[b="‘;
57         var b = ‘"]‘;
58         var n = a + target + b;
59         // console.log(n)
60         $(‘.content‘).children(n).removeClass(‘hide‘).siblings().addClass(‘hide‘)
61
62     })
63 </script>
64
65 </body>
66 </html>


    五、文档处理添加删除功能:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <input type="text" id="in">
 9 <input type="button" id="i1" value=‘添加‘>
10 <input type="button" id="i2" value=‘删除‘>
11 <input type="button" id="i3" value=‘复制‘>
12     <ul id="u1">
13         <li>1</li>
14         <li>2</li>
15     </ul>
16 <script src="jquery-3.1.0.js"></script>
17 <script>
18     $(‘#i1‘).click(function () {
19         var v = $(‘#in‘).val();
20         var temp = ‘<li>‘+ v + ‘</li>‘;
21         $(‘#u1‘).append(temp);
22         // $(‘#u1‘).prepend(temp);
23         // $(‘#u1‘).after(temp);
24         // $(‘#u1‘).before(temp);
25     })
26
27     $(‘#i2‘).click(function () {
28         var index = $(‘#in‘).val();
29         $(‘#u1 li‘).eq(index).remove();
30         // $(‘#u1 li‘).eq(index).empty();  // 标签还存在,内容已经删除
31     })
32
33     $(‘#i3‘).click(function () {
34         var index = $(‘#in‘).val();
35         var v = $(‘#u1 li‘).eq(index).clone();
36         $(‘#u1‘).append(v);
37     })
38
39 </script>
40 </body>
41 </html>


    六、点赞:s6代码

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .item{
 8             height: 200px;
 9             border-bottom: 1px solid gainsboro;
10         }
11         .zan{
12             position: relative;
13             bottom: 40px;
14             left: 100px;
15         }
16     </style>
17 </head>
18 <body>
19
20 <div class="item">
21     <div class="zan">
22         <span>赞</span>
23     </div>
24 </div>
25 <div class="item">
26     <div class="zan">
27         <span>赞</span>
28     </div>
29 </div>
30 <div class="item">
31     <div class="zan">
32         <span>赞</span>
33     </div>
34 </div>
35
36 <script src="jquery-3.1.0.js"></script>
37 <script>
38     $(‘span‘).click(function () {
39         addTag(this);
40     })
41     function addTag(self) {
42         // console.log(self)
43         var fontSize = 15;
44         var top = 0;
45         var left = 15;
46         var opacity = 1;
47
48         var tag = document.createElement(‘span‘);
49         // tag.innerText = ‘+1‘;
50         $(tag).text(‘+1‘);
51         $(tag).css(‘color‘,‘green‘);
52         $(tag).css(‘position‘,‘absolute‘);
53         $(tag).css(‘fontSize‘,fontSize+‘px‘);
54         $(tag).css(‘top‘,top+‘px‘);
55         $(tag).css(‘left‘,left+‘px‘);
56         $(tag).css(‘opacity‘,opacity);
57         $(self).append(tag);
58
59         var obj = setInterval(function () {
60             fontSize = fontSize + 5;
61             top = top - 10;
62             left = left + 2;
63             opacity = opacity - 0.2;
64
65             $(tag).css(‘fontSize‘,fontSize+‘px‘);
66             $(tag).css(‘top‘,top+‘px‘);
67             $(tag).css(‘left‘,left+‘px‘);
68             $(tag).css(‘opacity‘,opacity);
69
70             if (opacity<0){
71                 clearInterval(obj); // 要清除setInterval,否则会一直跑下去
72                 $(tag).remove();  // 还要将此标签清除,因为有标签会占用内容
73             }
74
75         },100)
76     }
77
78 </script>
79
80 </body>
81 </html>


    七、表单提交:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <form action=‘s4.html‘ method="POST">
 9     <input type="text">
10     <input id="bt" type="submit" value="提交">
11
12 </form>
13
14 <script src="jquery-3.1.0.js"></script>
15 <script>
16     $(‘#bt‘).click(function () {
17             var v = $(this).prev().val();
18             if (v.length > 0){
19                 return true;
20             }else {
21                 alert(‘请输入内容‘);
22                 return false;
23             }
24         })
25 </script>
26 </body>
27 </html>

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .error{
 8             color:red;
 9         }
10     </style>
11 </head>
12 <body>
13 <form id="f1" action="s4.html" method="POST">
14     <div><input type="text"></div>
15     <div><input type="password"></div>
16     <div><input type="text"></div>
17     <div><input type="text"></div>
18     <div><input type="text"></div>
19     <input type="submit" value="提交">
20 </form>
21
22 <script src="jquery-3.1.0.js"></script>
23 <script>
24     $(‘:submit‘).click(function () {
25         $(‘.error‘).remove();
26         var flag = true;
27         $(‘#f1‘).find(‘input[type="text"],input[type="password"]‘).each(function () {
28             var v = $(this).val();
29             if (v.length<=0){
30                 var tag = document.createElement(‘span‘);
31                 tag.className = ‘error‘;
32                 tag.innerText = ‘必填‘;
33                 $(this).after(tag);
34                 flag = false;
35                 // return false;  这个语句是打断当前循环,直接从循环中跳出
36             }
37         });
38         return flag
39     })
40
41
42 </script>
43 </body>
44 </html>

  

四、前端进阶
一、JS正则    1.定义正则表达式        /.../       # 用于定义正则表达式        /.../g      # 表示全局匹配        /.../i      # 表示不区分大小写        /.../m      # 表示多行匹配    2.匹配        - test 判断字符串是否符合规定的正则            rep = /\d+/;            >>/\d+/            rep.test(‘asdf89ghk‘)            >>true            rep.test(‘asdfghk‘)            >>false            rep = /^\d+$/;            >>/^\d+$/            rep.test(‘asdf45‘);            >>false            rep.test(‘12asdf‘);            >>false            rep.test(‘12asdf45‘);            >>false            rep.test(‘1245‘);            >>true        - exec 获取匹配的数据            rep = /\d+/;            >>/\d+/            str = ‘wagn_67_sdf_20‘;            >>"wagn_67_sdf_20"            rep.exec(str);            >>["67", index: 5, input: "wagn_67_sdf_20", groups: undefined] // 以数组形式返回    3.示例        单个单词的一级匹配和二级匹配:/\bJava\w*\b/;和/\bJava(\w*)\b/;            str = ‘JavaScript is more fun than Java or JavaBeans!‘            >>"JavaScript is more fun than Java or JavaBeans!"            var pattern = /\bJava\w*\b/;  // \b...\b 表示进行单个单词的匹配            >>undefined            pattern.exec(str);  // 只拿到JavaScript            >>["JavaScript", index: 0, input: "JavaScript is more fun than Java or JavaBeans!", groups: undefined]            var pattern = /\bJava(\w*)\b/; // 和上面差一个括号            >>undefined            pattern.exec(str);  // 拿到两个匹配了JavaScript后还把Script拿出来            >>(2) ["JavaScript", "Script", index: 0, input: "JavaScript is more fun than Java or JavaBeans!", groups: undefined]

全局单词的一级匹配:/\bJava\w*\b/g;            str = ‘JavaScript is more fun than Java or JavaBeans!‘            >>"JavaScript is more fun than Java or JavaBeans!"            var pattern = /\bJava\w*\b/g;  // 加g是表示全局匹配            >>undefined            pattern.exec(str); // 拿到第一个JavaScript            >>["JavaScript", index: 0, input: "JavaScript is more fun than Java or JavaBeans!", groups: undefined]            pattern.exec(str); // 拿到第二个Java            >>["Java", index: 28, input: "JavaScript is more fun than Java or JavaBeans!", groups: undefined]            pattern.exec(str); // 拿到第三个JavaBeans            >>["JavaBeans", index: 36, input: "JavaScript is more fun than Java or JavaBeans!", groups: undefined]            pattern.exec(str); // 为空            >>null            pattern.exec(str); // 再从头循环            >>["JavaScript", index: 0, input: "JavaScript is more fun than Java or JavaBeans!", groups: undefined]

全局单词的一级匹配和二级匹配:/\bJava(\w*)\b/g;            str = ‘JavaScript is more fun than Java or JavaBeans!‘            >>"JavaScript is more fun than Java or JavaBeans!"            var pattern = /\bJava(\w*)\b/g; // 加括号的\w*            >>undefined            pattern.exec(str);            >>(2) ["JavaScript", "Script", index: 0, input: "JavaScript is more fun than Java or JavaBeans!", groups: undefined]            pattern.exec(str);            >>(2) ["Java", "", index: 28, input: "JavaScript is more fun than Java or JavaBeans!", groups: undefined]            pattern.exec(str);            >>(2) ["JavaBeans", "Beans", index: 36, input: "JavaScript is more fun than Java or JavaBeans!", groups: undefined]            pattern.exec(str);            >>null            pattern.exec(str);            >>(2) ["JavaScript", "Script", index: 0, input: "JavaScript is more fun than Java or JavaBeans!", groups: undefined]

多行匹配应用            str = ‘JavaScript is more fun than \nJava or JavaBeans!‘;            >>"JavaScript is more fun than            >>Java or JavaBeans!"            var pattern = /^Java(\w*)/g; // 无论有几行,只匹配一个字符串开头的Java            >>undefined            pattern.exec(str);            >>(2) ["JavaScript", "Script", index: 0, input: "JavaScript is more fun than ?Java or JavaBeans!", groups: undefined]            pattern.exec(str);            >>null            var pattern = /^Java(\w*)/gm; // 加上m后可以匹配多行以Java开头的字符串            >>undefined            pattern.exec(str);            >>(2) ["JavaScript", "Script", index: 0, input: "JavaScript is more fun than ?Java or JavaBeans!", groups: undefined]            pattern.exec(str);            >>(2) ["Java", "", index: 29, input: "JavaScript is more fun than ?Java or JavaBeans!", groups: undefined]

4.JS验证(验证时会使用正则)        总体验证:            JS验证:包含各种验证,如注册时用户名、手机号、两次密码输入、验证码等(如果用JS实现代码量很大)            后端验证:进行服务器数据库等验证

二、模板使用

EasyUI(功能齐全,学习繁杂,主要做后台管理)        - css        - js

jQueryUI(推荐使用,功能少,主要做后台管理)        - css        - js

BootStrap(适用全栈)        - css        - js
 


    

原文地址:https://www.cnblogs.com/xuedingwangluo/p/9781840.html

时间: 2024-10-08 19:27:13

前端学习之路—html标签、css、js的相关文章

前端学习之路-CSS介绍,Html介绍,JavaScript介绍

CSS介绍 学前端必备掌握CSS样式,css为层叠样式表,用来定义页面的显示效果,加强用户的体验乐趣,那么如何用css到html中呢? style属性方式 利用标签中的style属性来改变显示样式 <p style="background-color: #FFF000"> p标签 </p> 在head中加入style标签 <head> <style type="text/css"> p { color: #FFF000

jQuery延迟加载(懒加载)插件 – jquery.lazyload.js-Web前端(W3Cways.com) - Web前端学习之路

Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担. Demo页面: 基本选项 淡入效果 对不支持JavaScript浏览器的降级处理 水平滚动 容器内水平滚动 容器内垂直滚动

前端学习(八):CSS

进击のpython 前端学习--CSS 现在的互联网前端分为三层: HTML:超文本标记语言.从语义的角度描述页面结构 CSS:层叠样式表.从审美的角度负责页面样式 JS:Javascript.从交互的角度描述页面的行为 所以说HTML,CSS,JS也被称为前端三剑客 CSS是一个很神奇的东西,设计者可以通过修改样式表的定义从而使我们的网页呈现出完全不同的外观 也就是说,CSS其实就是网页的衣服,将网页打扮的"花里胡哨" 初识CSS CSS全称为''层叠样式表'(记住这个名字会对你后面

前端学习(十一):CSS性质

进击のpython 前端学习--CSS性质 那在CSS上还有一些很重要的性质:继承性,层叠性以及特殊性 那本小节就基于这三个性质进行展开... ... 继承性 在CSS的某些样式是具有继承性的,那什么是继承性呢? 在官方上说,继承是一种规则,他允许样式不仅应用于特定的html标签元素,而且应用于其后代元素 如果你父亲是双眼皮,你母亲也是双眼皮,那你是双眼皮你就继承了父亲的双眼皮 那拿到我们实际的代码中应用呢? <!DOCTYPE html> <html lang="en&quo

前端学习(九):CSS基础

进击のpython 前端学习--CSS基础 CSS的样式可以写在哪呢?其实CSS的样式插入式十分灵活的 按照插入的形势来看,可以分为三种情况 而接下来就对这三种情况进行简单的讨论 内嵌式 CSS样式表是可以直接把代码放在现有的标签里面去的 这种方法就称为内嵌式: <p style='color:red;'>文字颜色为红色</p> 把对应的style属性,写在p标签的开始标签中 CSS样式代码要写在style=""双引号中,如果有多条CSS样式代码设置可以写在一起

前端学习(十):CSS选择器

进击のpython 前端学习--CSS选择器 每一条CSS样式声明由两部分组成: 选择器{ 样式: } 在CSS中{}之前的部分就是"选择器","选择器"指明了{}中的"样式"的作用对象 也就是说该"样式"作用与网页中的哪些元素 那选择器就分为:基础选择器和高级选择器 基础选择器 标签选择器 标签选择器顾名思义就是html代码中的标签 我们之前学习的html.body.h系列的标签.p.div.img等等我们都可以使用标签选择

前端学习(十三):CSS盒子模型

进击のpython 前端学习--CSS盒子模型 在前面的时候也说过,包括分析网页结构的时候,提到了,网页就其实就是一个一个盒子叠起来的 那现在就是有装饰的盒子,难度就变得深刻 所以说为了能够让你更好地理解,在说盒子模型之前,我要先向你介绍一下标签 对!就是html里面的那些标签 标签分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(也叫行内元素)和内联块元素 html标签甚至有好几百个,我们之前学习大约有30个标签,你所看到的很多大型网站我们都能通过这些标签来搭

前端学习 第五弹: CSS (一)

前端学习 第五弹: CSS (一) 创建css: <link rel="stylesheet" type="text/css" href="mystyle.css" /> 外联 <style type="text/css"> hr {color: sienna;} p {margin-left: 20px;} body {background-image: url("images/back40

00 开始技术博客之旅,加速前端学习之路。

第一篇博文 都说程序员是“30IT,30岁挨踢”,其实这是个伪命题,只要自己喜欢学技术,喜欢不断地追新技术,多少岁也不会挨踢.所以,尽管我今年已经27岁了,但是我打算从零开始,希望成为一名前端工程师,目前在家待业,自学中. 说来也可笑,毕业时因为是女生且没有项目经验,很受挫,害怕了,最后没有做程序媛,4年过去了,我依然是个没有项目经验的女生,今天我去参加了我第三次前端实习生的面试,心里也明白是挂了,而且今天的面试官很mean呢,依然很受挫,但是不害怕了. 受挫是难免的,但是每每学完一个知识点,成