王庆召_20210115 王庆召

一、知识点总结

1、BOM编程

1.1 概念

BOM:Browser Object Model 浏览器对象模型

1.2 BOM常用的对象

<div id="box" class="box" name="box">我是网页内容</div>
<div id="box" class="box" name="box">我是网页内容111</div>
<script type="text/javascript">
// 获取元素 document 网页
// 根据 id 获取一个元素
var box = document.getElementById("box");
// 根据 class 获取元素, 只要 class 包含即可
var divs = document.getElementsByClassName("box");
// 根据 name 获取元素
var names = document.getElementsByName("box");
// 根据标签名 获取元素
var div = document.getElementsByTagName("div");
// 根据 选择器 选择 一个元素
var element = document.querySelector("#box");
// 根据 选择器 选择 所有元素, 返回的一定是数组
var elements = document.querySelectorAll(".box");

1.3 location 对象
1.3.1 常用属性
  • 获取href属性,获得当前地址栏访问的地址
  • 设置href属性,用于页面的跳转,跳转到一个新的页面
1.3.2 location方法

代表浏览器的地址栏对象

1.4 查找结点的方法

ody>
<input type="button" value="(通过标签名)给a链接添加地址" id="b2" />
<input type="button" value="(通过name属性)给div设值" id="b3" />
<input type="button" value="(通过类名)给div设值" id="b4" />
<hr />
<a>百度一下</a><br />
<a>百度一下</a><br />
<a>百度一下</a><br />
<hr />
<div name="one"></div>
<div name="one"></div>
<div name="one"></div>
<hr />
<div class="two"></div>
<div class="two"></div>
<div class="two"></div>
<script type="text/javascript">
window.onload = function() {
//根据标签名找元素
var b2 = document.getElementById("b2");
b2.onclick = function() {
//返回的是一个数组对象
var aNodes = document.getElementsByTagName("a");
for (var index = 0; index < aNodes.length; index++) {
aNodes[index].href = "http://www.baidu.com";
}
}
//根据name的属性值找
var b3 = document.getElementById("b3");
b3.onclick = function() {
//根据name的属性值找元素,返回一个数组对象
var divs = document.getElementsByName("one");
for (var index = 0; index < divs.length; index++) {
divs[index].innerHTML = "<a href='#'>我是一个程序员</a>";
}
}

1.5 创建元素结点的方法

1.6 js操作CSS样式

1.6.1方式一
.style.样式名 = "样式值"
1.6.1方式二
.className = "类名";

1.7表单校验

String对象是JavaScript中最常见的对象之一。用户在表单中输入的数据默认都是String类型。 JavaScript对String类型的数据提供了丰富的操作API。下表是String类常用的方法,字符串以“I Love This Game!!!”为例:

1.8 正则表达式

1.8.1 元字符

元字符是构成正则表达式最基本的部分,主要的元字符如下表所示

1.8.2 重复(量词)

正则表达式验证字符出现的次数,是通过重复限定符来实现的。常用的重复限定符如下表所示

1.8.3 范围

方括号用于查找某个范围内的字符

1.8.4修饰符

修饰符用于执行区分大小写和全局匹配:

1.9 实例代码 选择

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <input type="checkbox" name="item" value="99">a
        <input type="checkbox" name="item" value="66">b
        <input type="checkbox" name="item" value="250">c
        <input type="checkbox" name="item" value="9.9">d
        <input type="checkbox" name="item" value="996">e
        <hr />
        <input type="checkbox"  id="sel" onclick="checkAll()" >全选/全不选
        <button onclick="choic()">反选</button>
        <button onclick="clearCount()">结算</button>
        <br />
        结算:<span class="count">0</span>元
        <script type="text/javascript">
            var check = document.querySelectorAll("[name=item]");
            var checkal = document.querySelector("#sel")
            var k = 0;
            function checkAll(){
                for (var i = 0; i < check.length; i++) {
                    check[i].checked = checkal.checked;
                }
    
            }
            function choic(){
                for (var i = 0; i < check.length; i++) {
                    check[i].checked = !check[i].checked;
                }
            }
            function clearCount(){
                var sum = 0
                var sp = document.querySelector(".count")
                for (var i = 0; i < check.length; i++) {
                    if (check[i].checked == true) {
                        var sumCount =  Number(check[i].value);
                        sum = sum + sumCount ;
                    }
                }
                sp.innerText = sum;
                
            }
        </script>
    </body>
</html>

1.10 实例代码 鼠标单击事件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            .bg {
                background-color: #16c79a;
            }

            .cg{
                background-color: #96bb7c;
            }

                /* table tr:nth-child(even) {
                    background: #ccc;

                } */
            tr{
                text-align: center;
            }
        </style>
    </head>
    <body>
        <button onclick="addClass()">添加样式</button>
        <table border="1" cellspacing="0" cellpadding="0" class="a" width="500px">
            <tr>
                <th>序号</th>
                <th>姓名</th>
                <th>性别</th>
            </tr>
            <tr>
                <td>1</td>
                <td>张三</td>
                <td>男</td>
            </tr>
            <tr>
                <td>2</td>
                <td>李四</td>
                <td>男</td>
            </tr>
        </table>

        <script>
            // 获取到元素
            var table = document.querySelector("table");
            var str = document.querySelector("table").querySelectorAll("tr")
            for (var i = 0; i < str.length; i++) {
                if (i != 0) {
                    str[i].onmouseover = function() {
                        this.className = this.className + 'bg'
                    }
                    str[i].onmouseout = function() {
                        this.className = ''
                    }
                }
            }


            function addClass() {
                table.className = table.className + " cg";
                console.log(table.className);
            }
        </script>
    </body>
</html>

1.11 鼠标点击特效

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
            var html = document.querySelector("html")
            
            window.addEventListener("click", heart, false);
            function heart(e) {
                var fontsize = 16;
                // 确定显示的位置,
                var left = e.clientX - fontsize / 2;
                var top = e.clientY - fontsize / 2;
                
                // 向页面添加元素
                var b = document.createElement("b")
                
                // 向元素中添加要显示的内容
                var a = new Array("富强","民主","文明","和谐","自由","平等","公正","法治","爱国","敬业","诚信","友善")
                var cont = Math.floor((Math.random()*12)+0); 
                // b.innerText = "♥";
                b.innerText = "♥"+a[cont] +"♥";
                b.style = "font-size:"+fontsize+"px;color:"+randColor()+";position:absolute;left:"+
                left+"px;top:"+top+"px;opacity:1";
                document.body.appendChild(b);
                
                var timer = setInterval(function(){
                    var top = b.style.top.replace("px","");
                    b.style.top = top - 1 + "px";
                    b.style.opacity -= 0.05;
                    if (b.style.opacity < 0) {
                        document.body.removeChild(b);
                        clearInterval(timer);
                    }
                }, 100)
            }
            function randColor(){
                //~~的作用是去掉小数部分
                return "rgb(" + ~~ (255 * Math.random()) + "," + ~~ (255 * Math.random()) + "," + ~~ (255 * Math.random()) + ")";
            }
        </script>
    </body>
</html>

二、心得体会

  1. JavaScript的学习需要多多练习和多多的运用;
  2. js这块知识也需要对于一些属性和方法去记忆,以便更灵活的应用;
  3. 在写代码的时候,要利用好浏览器的调试窗口,去调试代码。

评论