JS基础

1、什么是JavaScript

最新版本es6版本。但是大部分浏览器还停留在es5代码上。

开发环境—线上环境,版本不一致。

2、快速入门

2.1 引入

1、内部标签

2、外部引入

2.2 基本语法入门

<script>
        // 1、定义变量  变量类型  变量名 = 变量值
        var num = 1;
        alert(num);
        // 2、条件控制
        if(2>1){
            alert("true");
        }

      /*console.log(score)在浏览器的控制台打印变量!System.out.println();
      *
      **/
</script>

2.3 数据类型

数值、文本、图形、音频、视频。。。。

*number

js不区分小数和整数,Number

123 //整数123
123.1 //浮点数123.1
1.123e3 //科学计数法
-99 //负数
NAN //not a number
Infinity //表示无限大

*字符串

‘abc’ “abc”

*布尔值

*逻辑运算

&&  两个都为真,结果为真

||  一个为真,结果为真

! 真即假,假即真

*比较运算符!!!!!

=
==  等于(类型不一样,值一样,也会判断为true)
===  绝对等于(类型一样,值一样,结果为true)

js的缺陷,坚持不要使用 == 比较

须知:

  • NaN === NaN ,这个与所有的数值都不相等,包括自己
  • 只能通过isNaN(NaN)来判断这个数是否是NaN

浮点数问题:

console.log((1/3) === (1-2/3))

尽量避免使用浮点数进行运算,存在精度问题!

Math.abs(1/3-(1-2/3)) < 0.00000001

*null和undefined

  • null 空
  • undefined 未定义

*数组

Java的数值必须是相同类型的对象~,JS中不需要这样!

//保证代码可读性,尽量用[].
var arr = [1,2,3,4,5,'hello',null,true]

*对象

对象是大括号,数组是中括号~~

每个属性之间使用逗号隔开,最后一个不需要添加逗号

3、数据类型

3.1 字符串

  1. 正常字符串我们使用 单引号,或者双引号包裹

  2. 注意转义字符 \

    \'
    \n
    \t
    \u4e2d  \u####  Unicode字符
    "\x41"         Ascll字符
    

    3.多行字符串缩写(tab键上方的飘)``

    var msg = 
        `hello
    world
    你好ya
    你好
    `
    

    4.模板字符串

    //tab上面的飘
    let name = "qingjiang";
    let age = 3;
    
    let msg = `你好呀,${name}`
    

    5.字符串长度

    str.length
    

    6.字符串的可变性,不可变

    7.大小写转换

    //是方法不是属性
    student.toUpperCase()
    student.toLowerCase()
    

    8.student.indexOf(‘t’),所在下标

    9.截取字符串,substring,包含前面不包含后面

    student.substring(1) //从第一个字符串截取到最后一个字符串
    student.substring(1,3) //[1,3)
    

    3.2 数组

    Array可以包含任意的数据类型

var arr = [1,2,3,4,5,6]; //通过下表取值和赋值
arr[0];
arr[0] = 1;
  1. 长度

    arr.length
    

    注意:假如给arr.length赋值,数组大小就会发生变化~,如果赋值过小,元素就会丢失

2.indexOf,通过元素获得下标索引

arr.indexOf(2)
1

字符串的“1”和数字 1 是不同的

3.slice() 截取Array的一部分,返回一个新数组 (包头不包尾),类似String中的substring

4.push(): 压入到尾部,pop():弹出尾部的一个元素

5.unshift() 压入到头部, shift() 弹出头部的一个元素

6.排序sort()

7.元素反转 reverse()

8.concat()

arr = ["c","b","a"];
arr.concat([1,2,3]);
["c","b","a",1,2,3]
arr
["c","b","a"]

注意:concat()并没有修改数组,只是会返回一个新的数组

9.连接符 join

打印拼接数组,使用特定的字符串连接

["c","b","a"]
arr.join("-");
"c-b-a"

10.多维数组

3.3 对象

若干个键值对

var 对象名 = {
    属性名:属性值,
    属性名:属性值,
    属性名:属性值
}

JS中的对象,{…}表示一个对象,键值对描述属性XXXXXX:XXXX,多个属性之间使用逗号隔开,最后一个属性不加逗号!

JavaScript中的所有的键都是字符串,值是任意对象!

1.对象赋值

person.name = "qinjiang"
"qingjiang"
person.name
"qingjiang"

2.使用一个不存在的对象属性,不会报错!undefined

person.haha
undefined

3.动态的删减属性,通过delete删除对象的属性

delete person.name
true
person

4.动态的添加,直接给新的属性添加值即可

person.haha = "haha"
"haha"
person

5.判断属性值是否在这个对象中! XXX in XXX

'age' in person
true
//继承
'toString' in person
true

6.判断一个属性是否是这个对象自身拥有的 hasOwnProperty()

person.hasOwnProperty('toString')
false
person.hasOwnProperty('age')
true

3.4 流程控制

if判断

循环 for while 避免成勋死循环 do~while

数组循环 forEach()

var age = [1,2,3,4,5,7,8,9,355]

//函数
age.forEach(function(value) {
    console.log(value);
})

for … in 循环遍历数组

//for(var index in object){}
for(var num in age) {
    if(age.hasOwnProperty(num)) {
        console.log("存在");
        console.log(age[num]);
    }
}

3.5 Map 和 Set

ES6的新特性~

Map:

 //Es6
      //学生的成绩,学生的姓名
    //   var names = ["tom","jack","haa"];
    //   var scores = [100,90,80];
    var map = new Map([['tom',100],['jack',90],['haa',80]]);
    var name = map.get('tom');//通过key获得value
    map.set('admin',123456);//新增或修改
	map.delete("tom");//删除
    console.log(name);

Srt:无序不重复的集合

 var set = new Set([3,1,1,1,1,1]);//set可以去重
    set.add(2);//添加
    set.delete(1);//删除
    console.log(set.has(3));//是否包含某个元素

3.6 iterator

es6新特性

作业:使用iterator来遍历迭代Map,Set

遍历数组

//通过 for of / for in 下标 
var arr = [3,4,5];
for(let x of arr){
    console.log(x);
}

遍历Map

var map = new Map([["tom",90],["jack",80],["haa",80]]);
for(let x of map) {
    console.log(x);
}

遍历set

var set = new Set([5,6,7]);
for (let x of set) {
    console.log(x);
}

4.函数

4.1 定义函数

绝对值函数

function ads(x) {
    if(x >= 0){
        return x;
    }else {
        return -x;
    }
    
}

一旦执行return代表函数结束,返回结果

如果没有执行return,函数执行完也会返回结果,结果就是undefined

定义方式二
var abs = function(x) {
     if(x >= 0){
        return x;
    }else {
        return -x;
    }
}

function(x){…},这是一个匿名含函数,但是可以把结果赋值给abs,通过abs就可以调用函数

方式一和方式二等价

调用函数
abs(10) //10
abs(-10) //10

参数问题:JavaScript可以传任意一个参数.也可以不传递参数~

参数进来是否存在的问题?假设不存在,如何规避?

var abs = function(x) {
    //手动抛出异常来判断
    if(typeof x != 'number') {
        throw 'Not a Number';
    }
    if(x >= 0){
        return x;
    }else {
        return -x;
    }
}
arguments

arguments是一个JS免费赠送的关键字;

代表,传递进来的所有的参数,是一个数组!

var abs = function(x){
    console.log("x =>" +x);
    for (var i = 0; i < arguments.length;i++){
        console.log(arguments[i]);
    }
    if(x >= 0){
        return x;
    }else {
        return -x;
    }
}

问题:arguments包含所有的参数,但是有时候想使用多余的参数来进行附加操作时,需要排除已有参数~

rest

ES6 引入的新特性,获取除了定义参数以外的参数

function aaa(a,b,...rest) {
    console.log("a=>"+a);
    console.log("b=>"+b);
    console.log(rest);
}

rest参数只能写在最后面,必须用…标识.

4.2 变量的作用域

在JavaScript中,var定义变量实际是有作用域的.

假设在函数体中声明,则在函数体外不可以使用~(非要使用,需要研究闭包)

如果两个函数是用了相同的变量名,只要在函数内部,就不冲突

内部函数可以访问外部函数的成员,反之则不行

假设,内部函数变量和外部函数的变量,重名!

假设在JavaScript中函数查找变量是从自身函数开始~,由内向外查找,加谁外部存在这个同名变量的函数变量,则内部函数会屏蔽外部函数的变量.

提升变量的作用域
function qj() {
    var x = "x"+y;
    console.log(x);
    var y = 'y';
}

结果:xundrfined

说明:js执行引擎,自动提升了y的声明,但是不会提升变量y的赋值;

function qj2(){
    var y;
    var x = "x"+y;
    console.log(x);
    y = 'y';
}

养成规范:所有的变量定义都放在函数的头部,不要乱放,便于代码的维护;

全局函数
//全局变量
x = 1;
function f(){
    console.log(x);
}
f();
console.log(x);

全局对象 window

var x = 'xxx';
alert(x);
alert(window.x);//默认所有的全局变量都会自动绑定在 window对象下
alert()这个函数本身也是一个window变量

JavaScript实际上只有一个全局作用域,任何变量(函数也可以视为变量),假设没有在函数作用范围内找到,就会向外查找,如果在全局作用域都没有找到,报错 RefrenceError

规范

由于所有的全局变量都会绑定在window上,如果不同的js文件,使用了相同的全局变量,冲突~> 如果能够减少冲突?

//唯一全局变量
var kuangApp = {};

//定义全局变量
kuangApp.name = 'kuangshen';
kuangApp.add = function (a,b) {
    return a+b;
}

把自己的代码全部放入自己定义的唯一空间名字中,降低全局命名冲突的问题~

jQuery

局部作用域 let
function aaa() {
    for(var i = 0;i < 100;i++) {
        console.log(i);
    }
    console.log(i+1);//最终结果i到101,问题? i出了这个作用域还可以使用
}

ES6 let 关键字,解决局部作用域冲突问题!

unction aaa() {
    for(let i = 0;i < 100;i++) {
        console.log(i);
    }
    console.log(i+1);//Uncaught ReferenceError: i is not defined
}

建议都使用 let 去定义局部作用域的变量

常量 const

在ES6之前,怎样定义常量:只有用全部大写字母命名的变量就是常量;建议不要修改这样的值

var PI = '3.14';
console.log(PI);
PI = '213';//可以改变这个值
console.log(PI);

在ES6引入了常量关键字 const

var PI = '3.14';//只读变量
console.log(PI);

4.3 方法

定义方法

方法就是把函数放在对象的里面,对象只有两个东西:属性和方法

var kuangshen = {
    name:'qingjiang',
    bitrh: 2000,
    age:function() {
        //今年 - 出生的年
        var now = new Date().getFullYear();
        return now - this.bitrh;
    }
}
//属性
kuangshen.name
//方法,一定要带()
kuangshen.age()

this代表什么? 拆开代码

function getAge() {
    //今年 - 出生的年
    var now = new Date().getFullYear();
    return now - this.birth;
}

var kuangshen = {
    name:'qingjiang',
    bitrh: 2000,
    age:getAge
}
//kuangshen.age() ok
//getAge() NaN  window

this是无法指向的,是默认指向调用它的那个对象

apply

在js中可以控制this指向!

function getAge() {
    //今年 - 出生的年
    var now = new Date().getFullYear();
    return now - this.birth;
}

var kuangshen = {
    name:'qingjiang',
    bitrh: 2000,
    age:getAge
};
//kuangshen.age() ok
getAge.apply(kuangshen.[]);//this,指向了kuangshen.参数为空

5. 内部对象

标准对象

typeof 123
"number"
typeof '123'
"string"
typeof true
"boolean"
typeof NaN
"object"
typeof []
"object"
typeof {}
"object"
typeof Math.ads
"function"
typeof undefined
"undefined"

5.1 Date

基本使用

var now = new Date();
       now.getFullYear();//年
       now.getMonth();//月 0~11
       now.getDate();//日
       now.getDay();//星期几
       now.getHours();//时
       now.getMinutes();//分
       now.getSeconds();//秒

       now.getTime();//时间戳  全世界统一 1970 1.1 0:00:00  毫秒数
       console.log(new Date(1578106175991))//时间戳转为时间

转换

now = new Date(1578106175991)
Sat Jan 04 2020 10:49:35 GMT+0800 (中国标准时间)
now.toLocaleString()
"2020/1/4 上午 10:49:35"
now.toGMTString()
"Sat,04 Jan 2020 02:49:35 GMT"

5.2 JSON

json是什么

早期,所有数据传输习惯使用XML文件!

  • JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
  • 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

在JavaScript一切皆为对象,任何JS支持的类型都可以用JSON来表示:

格式:

  • 对象都用{}
  • 数组都用 []
  • 所有的键值对 都是用 key:value

JSON字符串和JS对象的转化

var user = {
    name:"qingjianng",
    age:3,
    sex:'nan'
}
//对象转化为json字符串  {"name":"qingjiang","age":3,"sex":"nan"}
var jsonUser = JSON.stringfy(user);

//json字符串转化为对象  参数为 json 字符串
var obj = JSON.parse('{"name":"qingjiang","age":3,"sex":"nan"}');

JSON和JS对象的区别

var obj = {a:'hello',b:'hellob'};
var json = '{"a":"hello","b":"hellob"}'

5.3 Ajax

  • 原生的js写法 xhr异步请求
  • jQuey封装好的 方法 $("#name").ajax("")
  • axios请求

6、面向对象编程

原型对象

6.1 什么是面向对象

JavaScript、Java、c#…面向对象;JavaScript有些区别!

类:模板

对象:具体的实例

在JavaScript需要换一下思维方式!

原型:

var student = {
    name:"qingjiang",
    age:3,
    run: function() {
        console.log(this.name+"run....");
    }
};

var xiaoming = {
    name:"xiaoming"
};
//原型对象
xiaoming._proto_ = student;

var Bird = {
    fly:function(){
        console.log(this.name+"fly...");
    }
};

//小明的原型是 student
xiaoming._proto_ = Bird;
 function Student(name) {
           this.name = name;
       }

       //给Student 新增一个方法
       Student.prototype.hello = function () {
           alert('Hello')
       };

class 继承

class关键字,是从ES6引入的

1.定义一个类,属性,方法

//定义一个学生的类
       class Student{

           constructor(name){
               this.name = name;
           }
           hello() {
               alert('hello')
           }
       }
var xiaoming = new Student("xiaoming");
var xiaohong = new Student("xiaohong");
xiaoming.hello()

2.继承

<script>
    //ES6 之后========
    //定义一个学生的类
    class Student{

        constructor(name){
            this.name = name;
        }
        hello() {
            alert('hello')
        }
    }
class xiaoStudent extends Student{
    constructor(name,grade){
        super(name);
        this.grade = grade;
    }
    myGrade(){
        alert('我是一名小学生');
    }
}
var xiaoming = new Student("xiaoming");
var xiaohong = new Student("xiaohong",1);
</script>

本质:查看对象原型

原型链

_proto _:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PsPcESxC-1615088133031)(C:\Users\86178\AppData\Roaming\Typora\typora-user-images\image-20210127185350583.png)]

7、操作BOM对象(重点)

浏览器介绍

JavaScript和浏览器关系?

JavaScript诞生就是为了能在浏览器中运行!

BOM:浏览器对象模型

  • IE 6~11
  • Chrome
  • Safari
  • FireFox

三方

  • QQ浏览器
  • 360浏览器

window

window代表 浏览器窗口

window.innerHeight
window.innweWidth
window.outHeight
window.outWidth

Navigator (不建议使用)

Navigator,封装了浏览器的信息

navigator.appName
""
navigator.appVersion
""
navigator.userAgent
""
navigator.platform
""

大多数时候,不会使用 navigator对象,因为会被人为修改!

不建议使用这些属性来判断和编写代码

screen 代表屏幕尺寸

screen.width
1920 px
screen.height
1080 px

location (重要)

location 代表当前页面的URL信息

host: "www.baidu.com"
href: "https://www.baidu.com/?tn=49055317_4_hao_pg"
protocol: "https:"
reload: ƒ reload()//刷新网页
//设置新的地址
location.assign('http://127.0.0.1:5500/01.html')

document

document 代表当前页面,HTML DOM 文档树

document.title
"百度一下,你就知道"
document.title = '这是我的网站'
"这是我的网站"

获取具体的文档树结点

<dl id="app">
        <dt>Java</dt>
        <dd>JavaSE</dd>
        <dd>JavaEE</dd>
    </dl>

    <script>
        var dl = document.getElementById('app');
    </script>

获取Cookie

document.cookie  //百度
"BIDUPSID=F760EE06752BF23E79917E77D4FE2174; PSTM=1610608023; BAIDUID=F760EE06752BF23ED70DB22D06B865C9:FG=1; BD_UPN=12314753; sugstore=1; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; BAIDUID_BFESS=F760EE06752BF23ED70DB22D06B865C9:FG=1; BDRCVFR[-HoWM-pHJEc]=mk3SLVN4HKm; BD_HOME=1; H_PS_PSSID=; delPer=0; BD_CK_SAM=1; PSINO=7; H_PS_645EC=12ffXIyk5%2BF9sGh%2FVsFA4ggIFu7X93PZ8SczLXyUjtwrwrnmz%2Fs8JKfLPL68v5alPFchopnAaow; COOKIE_SESSION=256387_0_9_5_9_16_0_1_9_3_1_7_0_0_11_0_1611564069_0_1611820445%7C9%230_0_1611820445%7C1; BA_HECTOR=858k242580al8425e81g14sn10r"

劫持cookie原理

www.taobao.com

<script src="aa.js"></script>
<!--恶意人员:获取你的cookie上传到他的服务器 -->

服务器端可以设置 cookie:httpOnly

history(不建议使用)

history 代表浏览器的历史记录

history.back() //后退
history.forward()  //前进

8、操作DOM对象(重点)

DOM:文档对象模型,

核心

浏览器网页就是一个DOM树形结构!

  • 更新:更新DOM结点
  • 遍历DOM节点:得到DOM节点
  • 删除:删除一个DOM节点
  • 添加:添加一个DOM节点

要操作一个DOM节点,就必须要先获得这个DOM节点

获得DOM节点

 //对应CSS选择器
       var h1 = document.getElementsByTagName('h1');
       var p1 = document.getElementById('p1');
       var p2 = document.getElementsByClassName('p2');
       var father = document.getElementById('father');
       var childrens = father.children;//获取父节点下的所有子节点
       //father.firstChild
       //father.lastChild

这是原生代码,之后尽量使用jQuery();

更新节点

<div id="id1">
        
    </div>
   
   <script>
      var id1 = document.getElementById('id1');
   </script>

操作文本

  • id1.innertext=‘456’ 修改文本的值
  • id1.innerHTML = ‘123 可以解析HTML文本标签

操作JS

id1.style.color = 'red';//属性使用  字符串 包裹
id1.style.fontSize = '200px';//下划线转驼峰命名

删除节点

删除节点的步骤:先获取父节点,再通过父节点删除自己

<div id = "father">
    <h1>标题一</h1>
    <p id="p1">p1</p>
    <p class="p2">p2</p>
</div>
<script>
	var self = document.getElementById('p1');
	var father = p1.parentElement;
  	father.removerChild(p1);
    
    //删除是一个动态的过程
    father.removeChild(father.children[0])
    father.removeChild(father.children[1])
    father.removeChild(father.children[2])
</script>

注意:删除多个节点的时候,children是在时刻变化的,删除节点的时候一定需要注意!

插入节点

获得了某个DOM节点,假设这个DOM节点是空的,我们通过innerHTML就可以增加一个元素了,但是这个DOM节点已经存在元素了,就不能采用此方法,因为为覆盖.

追加

<p id="js">JavaScript</p>
    <div id="list">
        <p id="se">JavaSE</p>
        <p id="ee">JavaEE</p>
        <p id="me">JavaME</p>
    </div>
   
   <script>
      
      var js = document.getElementById('js'),
       List = document.getElementById('list');
       List.appendChild(js);//追加到后面
   </script>

效果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-67TO0dTH-1615088133038)(C:\Users\86178\AppData\Roaming\Typora\typora-user-images\image-20210128183623305.png)]

创建一个新的标签,实现插入

<script>
    var js = document.getElementById('js');//已经存在的节点
    var List = document.getElementById('list');
    //通过JS创建一个新的节点
    var newP = document.createElement('p');//创建一个P标签
    newP.id = 'newP';
    newP.innerText = 'Hello,word';
    //创建一个标签节点(通过这个属性,可以设置任意值)
    var myScript = document.createElement('script');
    myScript.setAttribute('type','text/javascript');
    //可以创建一个Style标签
    var myStyle = document.createElement('style');//创建一个空标签
    myStyle,setAttribute('type','text/css');
    myStyle.innerHTML = 'body{background-color:chartreuse;}';//设置标签内容
    document.getElementsByTagName('head')[0].appendChild(myStyle);
</script>

insertBefore

<script>
      var ee = document.getElementById('ee');
      var js = document.getElementById('js');//已经存在的节点
      var List = document.getElementById('list');
    //要包含的节点,insertBefore(newNode,targetNode)
    List.insertBefore(js,ee);

   </script>

9、操作表单(验证)

表单是什么 form DOM树

  • 文本框 text
  • 下拉框
  • 单选框 radio
  • 多选框 checkbox
  • 隐藏域 hidden
  • 密码框 password
  • 。。。

表单的目的:提交信息

获得要提交的信息

<form action="post" >
        <p>
            <span>用户名:</span> <input type="text" id="username">
        </p>
        <!-- 多选框的值,就是定义好的value -->
        <p>
            <span>性别:</span>
            <input type="radio" name="sex" value="man" id="boy"><input type="radio" name="sex" value="women" id="girl"></p>
    </form>

    <script>
        var input_text = document.getElementById('username');
        var boy_radio = document.getElementById('boy');
        var girl_radio = document.getElementById('girl');
        //得到输入框的值
        input_text.value;
        //修改输入框的值
        input_text.value = '123';

        //对于单选框,多选框等等固定的值,用boy_radio.value只能取得当前的值
        boy_radio.checked; //查看返回的结果是否为true,如果为true,则被选中
        girl_radio.checked = true; //赋值
    </script>

提交表单 MD5加密密码,表单优化

<!-- MDS 工具类 -->
    <script src="https://blog-static.cnblogs.com/files/7qin/md5.js"></script>
</head>
<!-- 
    表单绑定提交事件 
onsubmit = 绑定一个提交检测的函数,true,false
将这个结果返回给表单,使用onsubmit 接收!
onsubmit = "return aaa()"
    -->
    <body>
    <form action="https://www.baidu.com/" method="POST" onsubmit="return aaa()">
        <p>
        <span>用户名:</span> <input type="text" id="username" name="username">
</p>
<!-- 多选框的值,就是定义好的value -->
        <p>
        <span>密码:</span>
<input type="password" id="password" name="input_password"> 
    </p>
<input type="hidden" name="password" id="md5-password">
    <!-- 绑定事件 -->
    <button type="submit">提交</button>
</form>

<script>
        function aaa() {
        var uname = document.getElementById('username');
        var pwd = document.getElementById('input_password');
        var md5pwd = document.getElementById('md5-password');
		//pwd.value = md5(pwd.value);
        md5pwd.value = md5(pwd.value);
        //可以校验判断表单内容,true就是通过提交,false就是阻止提交
        return true;
    }
</script>
</body>

10、jQuery

公式: $(选择器).事件(事件函数)

JavaScript

jQuery库,里面存在大量的JavaScript函数

获取jQuery 百度搜索CDN jQuery

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- CDN 引入 -->
    <script src="https://lib.baomitu.com/jquery/3.5.1/jquery.js"></script>
</head>
<body>   
</body>
</html>
<script src="https://lib.baomitu.com/jquery/3.5.1/jquery.js"></script>
</head>
<body>  
    <!-- 
        公式: $(selector).action()
     -->
     <a href="" id="test-jquery">点我</a>

     <script>
        //选择器就是CSS的选择器
         $('#test-jquery').click(function(){
             alert('hello,jQuery');
         })
     </script>

</body>

选择器

<script>
    //原生js,选择器少,麻烦不好记
    //标签选择器
    document.getElementsByTagName();
//id选择器
document.getElementById();
//类选择器
document.getElementsByClassName();

//jQuery css 中的选择器它全部都可以用!
$('p').click();//标签选择器
$('#id1').click();//id选择器
$('.class1').click();//类选择器
</script>

文档工具站:https://jquery.cuishifeng.cn/show.html

事件

鼠标事件,键盘事件,其他事件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s52dJ92y-1615088133043)(C:\Users\86178\AppData\Roaming\Typora\typora-user-images\image-20210129175825086.png)]

<!-- CDN 引入 -->
<script src="https://lib.baomitu.com/jquery/3.5.1/jquery.js"></script>
<style>
    #divMove{
        width: 500px;
        height: 500px;
        border: 1px solid red;
    }
</style>
</head>
<body>  
    <!-- 获取鼠标当前的一个坐标-->
    mouse:<span id="mouseMove"></span>
    <div id="divMove">
        在这里移动鼠标试试
    </div>
    <script>
        // 当网页元素加载完毕之后,响应事件
        $(function(){
            $('#divMove').mousemove(function(e){
                $('#mouseMove').text('x:'+e.pageX+'y:'+e.pageY)
            })
        });
    </script>

操作DOM

<body>  
   <ul id="test-ul">
       <li class="js">JavaScript</li>
       <li name="python">python</li>
   </ul>

   <script>
    //    document.getElementsById('');

    $('#test-ul li[name=python').text();//获得值
    $('#test-ul li[name=python').text('123421');//设置值
    $('#test-ul').html();//获得值
    $('#test-ul').html('<strong>123</strong>');//设置值
   </script>
</body>

CSS操作

$('#test-ul li[name=python').css("color","red");
$('#test-ul li[name=python').css({"color","red"},{});

元素的显示和隐藏:本质 display = none;

$('#test-ul li[name=python').show();//显示
$('#test-ul li[name=python').hide();//隐藏

娱乐测试

$(window).width();
$(window).height()
$('#test-ul li[name=python]').toggle()

未来ajax();

$('#from').ajax()
$.ajax({ url: "test.html", context: document.body, success: function(){
    $(this).addClass("done");
}});

11、前端扒代码

在检查-Elements中进行
delete键删除不需要的东西
鼠标右键,copy-copy outHTML

Layer 弹窗组件

Element-ui

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值