冯娜_20210119冯娜

知识点总结

一、JavaScript的事件

1、事件:是可以被JavaScript侦听到的行为(类似监听器)

2、事件通常要与函数配合使用,当事件发生函数才会执行

3、事件的注册方式:

(1)使用命名函数:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <input type="button" name="" id="btn" value="点击" onclick="output()" />
        <script type="text/javascript">
            function output(){
                alert("点击按钮")
            }
        </script>
    </body>
</html>

(2)使用匿名函数:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <input type="button" name="" id="btn" value="点击" onclick="output()" />
        <script type="text/javascript">
            function output(){
                alert("点击按钮")
            }
        </script>
        <input type="button" name="" id="btn2" value="再点我" />
        <script type="text/javascript">
            document.getElementById("btn2").onclick=function(){
                alert("我是按钮2,被点击了")
            }
        </script>
    </body>
</html>

4、常见的事件

onblur;//元素失去焦点
onfocus;//元素获得焦点
onchange;//用户改变域的内容
onclick;//鼠标点击某个对象
ondblclick;//鼠标双击某个对象
onkeydown;//某个键盘的键被按下
onkeyup;//某个键盘的键被松开
onload;//某个页面或图像被完成加载
onmousedown;//某个鼠标按键被按下
ommouseover;//鼠标被移到某元素之上
onmouseout;//鼠标从某元素移开
onmouseup;//某个鼠标按键被松开
onsubmit;//提交按钮被点击

二、JavaScript的内置对象

1、数组对象

(1)new Array() 无参的构造方法,创建一个长度为0的数组

(2)new Array(2) 有参的构造方法,指定数组的长度

(3)new Array(2,4,10) 有参的构造方法,指定数组中的每个元素

(4)[4,3,10,1] 使用【】的方式创建数组

2、日期对象(Date对象)

(1)日期对象的方法

getFullYear();//从 Date 对象以四位数字返回年份
getMonth();//从 Date 对象返回月份 (0 ~ 11)
getDate();//从 Date 对象返回一个月中的某一天 (1 ~ 31)
getDay();//从 Date 对象返回一周中的某一天 (0 ~ 6)。其中:0表示周日,1~6周一到周六
getHours();//返回 Date 对象的小时 (0 ~ 23)
getMinutes();//返回 Date 对象的分钟 (0 ~ 59)
getSeconds();//返回 Date 对象的秒数 (0 ~ 59)
getMilliseconds();//返回 Date 对象的毫秒(0 ~ 999)
getTime();//返回 1970 年 1 月 1 日至今的毫秒数。类似于Java中System.currentTimeMillis()
toLocaleString();//根据本地时间格式,把 Date 对象转换为字符串

3、全局对象

(1)字符串转换成数字类型

parseInt();//将一个字符串转成整数,如果一个字符串包含非数字字符,那么parseInt函数会从首字母开始取数字字符,一旦发现非数字字符,马上停止获取内容
parseFloat();//将一个字符串转成小数
isNaN();//转换前判断被转换的字符串是否是一个数字,非数字返回true

三、jQuery

1、什么是jQuery:是一个JavaScript的轻量级框架,提供了HTML文档操作、事件处理、动画设计和Ajax交互操作

2、目的:简化js开发

3、下载,可以在官网下载,官网下载地址:http://jquery.com;还可以在菜鸟教程中引用在线jq

4、jQuery与JavaScript的区别

(1)jq对象和js对象相互转换

(2)页面加载事件

//js
window.onload=function(){};
//jq
$(function(){})
$(document).ready(function(){})

区别:js:只能定义一次,若定义多次,后加载的会覆盖先加载的

​ jq:可以定义多次

(3)事件绑定

//js
js对象.onclick=function(){};
//jq
jq对象.click(function(){})回调函数
jq对象.on(事件,function(){})

(4)css样式设置:通过对象直接修改

//js
js对象.style.样式名=样式值
//jq
jq对象.css('样式名','样式值')
jq对象.addClass()
样式名:驼峰式,css横杆 都支持

5、jQuery选择器

(1)基本选择器

//1、标签(元素)选择器
$("html标签名") 获得所有匹配标签名称的元素
//2、id选择器
$("#id的属性值") 获得与指定id属性值匹配的元素
//3、class选择器
$(".class的属性值") 获得与指定的class属性值匹配的元素
//4、并集选择器
$("选择器1,选择器2....") 获取多个选择器选中的所有元素
//5、匹配所有选择器
$("*") 获取所有元素

(2)层级选择器

//1、 后代选择器
$("A B") 选择A元素内部的所有B元素
//2、子选择器
$("A > B") 选择A元素内部的所有B子元素
//3、兄弟下一个
$("A + B") 选择所有紧接在A元素后的B元素
//4、兄弟后面所有
$("A ~ B") 选择A元素之后的所有B元素
//5、兄弟所有
$("A").siblings() 选择A元素所有兄弟元素

(3)属性选择器

//1、属性名选择器
$("A[属性名]") 包含指定属性的选择器
//2、属性选择器
$("A[属性名='值']") 包含指定属性等于指定值的选择器
//3、复合属性选择器
$("A[属性名='值'][]...") 包含多个属性条件的选择器

(4)基本过滤选择器

//1、首元素选择器
:first 获得选择的元素中的第一个元素
//2、尾元素选择器
 :last 获得选择的元素中的最后一个元素
//3、非元素选择器
  :not(selector) 不包括指定内容的元素
//4、偶数选择器
   :even 偶数,从 0 开始计数
//5、奇数选择器
   :odd 奇数,从 0 开始计数
//6、等于索引选择器
    :eq(index) 指定索引元素
//7、大于索引选择器
     :gt(index) 大于指定索引元素
//8、小于索引选择器
      :lt(index) 小于指定索引元素
//9、标题选择器
      :header 获得标题(h1~h6)元素
//10、动画选择器
      :animated 获得正在执行的动画

(5)表单过滤选择器

//1、可用元素选择器
:enabled 获得可用元素
//2、不可用元素选择器
 :disabled 获得不可用元素
//3、选中选择器
  :checked 获得单选/复选框选中的元素
//4、选中选择器
 :selected 获得下拉框选中的元素

6、jq的DOM操作

(1)内容操作

//1、 html(): 获取/设置元素的标签体超文本内容  相当于:js中innerHTML
//2、text(): 获取/设置元素的标签体纯文本内容  相当于:js中innerText
//3、val(): 获取/设置元素的value属性值  相当于:js中value

(2)属性操作

a、attr(): 获取/设置元素的属性

b、removeAttr():删除属性

c、prop():获取/设置元素的属性

d、removeProp():删除属性

(3)css样式操作

a、addClass():添加class属性值

b、removeClass():删除class属性值

c、toggleClass():切换class属性

(4)文档CRUD操作

1、$("") //创建a元素对象
2、append()//父元素将子元素追加到末尾
3、prepend()//父元素将子元素追加到开头
4、before()//添加元素到元素前边
5、after()//添加元素到元素后边
6、remove()//移除元素
7、empty()//清空元素的所有后代元素



案例:

1、隔行换色

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>隔行换色</title>
    </head>
    <body>
        <table border="1" width="650px" cellspacing="0">
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>性别</th>
            </tr>
            <tr>
                <th>1</th>
                <th>张三</th>
                <th>男</th>
            </tr>
            <tr>
                <th>2</th>
                <th>李四</th>
                <th>男</th>
            </tr>
            <tr>
                <th>3</th>
                <th>王五</th>
                <th>男</th>
            </tr>
            <tr>
                <th>4</th>
                <th>马六</th>
                <th>男</th>
            </tr>
        </table>
        <script src="https://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js"></script>
        <script type="text/javascript">
            $(function (){
                //奇数行
                $('tr:gt(0):even').css('background-color','lightyellow');
                //偶数行
                $('tr:gt(0):odd').css('background-color','lightgreen');
            });
        </script>
    </body>
</html>

2、复选框全选与全不选

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>复选框的全选与不选</title>
    </head>
    <body>
        <input type="checkbox" name="checkItem" />JAVA
        <input type="checkbox" name="checkItem" />C++
        <input type="checkbox" name="checkItem" />Python
        <input type="checkbox" name="checkItem" />PHP
        <hr />
        <input type="checkbox" id="checkAll" />全选/全不选
        
        <script src="https://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js"></script>
        <script type="text/javascript">
            $(function (){
                 // 给头部复选框绑定点击事件
                    $('#checkAll').click(function () {
                      // 获取当前选中状态
                      // var flag = this.checked;
                      var flag = $(this).prop('checked');
                      // 获取一组商品复选框同步
                    
                 $('input[name="checkItem"]').prop('checked',$(this).prop('checked'));
                   })
            })
        </script>
    </body>
</html>

3、qq表情

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>qq表情</title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
                list-style: none;
            }
            .emoji{
                margin: 50px;
                }
                ul{
                    
                    overflow: hidden;
                }
                li{
                    float: left;
                    width: 48px;
                    height: 48px;
                }
            
        </style>
    </head>
    <body>
        <div class="emoji">
            <ul>
                <li><img src="img/01.gif" alt="" height="22" width="22"></li>
                <li><img src="img/02.gif" alt="" height="22" width="22"></li>
                <li><img src="img/03.gif" alt="" height="22" width="22"></li>
                <li><img src="img/04.gif" alt="" height="22" width="22"></li>
                <li><img src="img/05.gif" alt="" height="22" width="22"></li>
                <li><img src="img/06.gif" alt=""height="22" width="22"></li>
                <li><img src="img/07.gif" alt=""height="22" width="22"></li>
                <li><img src="img/08.gif" alt=""height="22" width="22"></li>
                <li><img src="img/09.gif" alt=""height="22" width="22"></li>
                <li><img src="img/10.gif" alt=""height="22" width="22"></li>
                <li><img src="img/11.gif" alt=""height="22" width="22"></li>
                <li><img src="img/12.gif" alt=""height="22" width="22"></li>
            </ul>   
        </div>
        <p class="word"> 
            <strong>请发言:</strong>
            <img src="img/12.gif" height="22" width="22">
        </p>
        <script src="https://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js"></script>
        <script type="text/javascript">
            $(function () {
                // 给所有表情绑定点击事件
                $('ul > li > img').click(function () {
                  // 将当前表情追加到 请发言末尾
            console.log(this);
                  $('.word').append($(this).clone());
               })
             })
        </script>
    </body>
</html>

四、修改网页名字

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>你来啦</title>
    </head>
    <body>
        <script type="text/javascript">
            var titlec =document.title;
            document.addEventListener("visibilitychange",function(){
                if(document.visibilityState=='hidden'){
                    titlec=document.title;
                    document.title ="记得回来哦";
                }else{
                    document.title =titlec;
                }
            })
        </script>
    </body>
</html>

五、修改复制粘贴结果

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>复制粘贴</title>
    </head>
    <body oncontextmenu="return false">
        <input type="text" name="" id="" value=""  oncontextmenu="return false"/>
        djsakdkjsadsakj
        <script type="text/javascript">
            //添加copy事件
            document.oncopy =myCopy;
            function myCopy(){
                //获取选中内容
                var select=document.getSelection().toString();
                //修改选中内容
                var content =select+"欢迎来到我的博客";
                //创建一个元素
                var div =document.createElement("div");
                div.style.position="absolute";
                div.style.left="-99999999px";
                //设置元素的内容
                div.innerHTML =content;
                //添加到网页中
                document.body.appendChild(div)
                //添加到选中内容中
                document.getSelection().selectAllChildren(div);
                //删除div
                setTimeout(function(){
                    document.body.removeChild(div);
                },100);
            }
        </script>
    </body>
</html>

心得体会

​ 今天学习了js的事件和内置对象,jq的基础,还有修改网页名字和修改复制粘贴的结果。修改网页名字和修改复制粘贴的结果是平时经常可以看见的操作,之前会想这是怎么做的,今天就学到了,甚是解惑。

标签

评论


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1