web前端学习(JavaScript篇)

目录

什么是JavaScrip?

JavaScript主要功能

JavaScript的组成部分

JavaScript的特点

JavaScript的基本使用 

JavaScript的基本语法

JavaScript中如何定义一个变量

条件控制

JavaScript数据类型

number

字符串

布尔值 

逻辑运算

比较运算符 

浮点数问题 

数组

对象 

‘use strict’ 严格检查模式

字符串类型详解

数组详解 

对象详解

流程控制

if循环

while循环

for循环

forEach循环 

for...in 

Map和Set

iterator

函数 

定义函数

arguments

rest

变量的作用域 

全局函数 

局部作用域let

常量const

方法

定义方法

apply

内部对象 

Date

JSON 

什么是JSION

Ajax 

面向对象编程

什么是面向对象

class继承 

操作BOM对象 

浏览器介绍

window

screen

location

document

history 

操作DOM对象 

核心

更新节点 

删除节点 

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

insert 

操作表单 

表单是什么   form DOM树

提交表单 

JQuery

获取JQuery

JQuery选择器 

事件 

jQuery操作Dom元素

节点文本操作

css的操作


什么是JavaScrip?

JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

JavaScript主要功能

1.嵌入动态文本于HTML页面。 

2.对浏览器事件做出响应。 

3.读写HTNL元素。 

4.在数据被提交到服务器之前验证数据。 

5.检测访客的浏览器信息。  控制cookies,包括创建和修改等。  

6.基于Node.js技术进行服务器端编程。

JavaScript的组成部分

标准化后的 JavaScript 包含了 3 个组成部分:

1.ECMAScript
脚本语言的核心内容,定义了脚本语言的基本语法和基本对象。现在每种浏览器都有对ECMAScript标准的实现。

2.DOM(Document Object Model)
文档对象模型,浏览器中的DOM把整个网页规划成由节点层级构成的树状结构的文档,用DOM API可以轻松地删除、添加和替换文档树结构中的节点。

3.BOM(Browser Object Model)
浏览器对象模型,描述了对浏览器窗口进行访问和操作的方法和接口。

JavaScript的特点

JavaScript 是一种运行在浏览器中的主要用于增强网页的动态效果、提高与用户的交互性的编程语言。相比于其他编程语言,它具有许多特点,主要包括以下几方面。

 1.解释性
JavaScript 不同于一些编译性的程序语言,它是一种解释性的程序语言,它的源代码不需要经过编译,直接在浏览器中运行时进行解释。

 2.动态性
JavaScript 是一种基于事件驱动的脚本语言,它不需要经过 Web 服务器就可以对用户的输入直接做出响应。

 3.跨平台性
JavaScript 依赖于浏览器本身,与操作环境无关。任何浏览器,只要具有JavaScript脚本引擎,就可以执行JavaScript。目前,几乎所有用户使用的浏览器都内置了JavaScript脚本引擎。

 4.安全性
JavaScript 是一种安全性语言,它不允许访问本地的硬盘,同时不能将数据存到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。这样可有效地防止数据丢失。

 5.基于对象
JavaScript 是一种基于对象的语言,同时也可以被看作是一种面向对象的语言。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。

JavaScript的基本使用 

1.script标签内,写Javascript代码

   <script>

        alert("hello world");

    </script>

 2.外部引入

xxx.js

alert("hello world");

 原文件:

  <script src="js/xxx.js"></script>

注意: script标签必须成对出现

JavaScript的基本语法

JavaScript中如何定义一个变量

定义变量 变量类型 变量名=变量值;

var score = 1;

条件控制

     if(score>60 && score<70){

        alert("60~70")

    }else if(score>70 && score<80){

        alert("70~80")

    }else{

        alert("other")

    }

console.log(score)在浏览器的控制台打印变量。相当于Java中的System.out.println();

JavaScript数据类型

JavaScript中数据的类型大体可以分为两种,简单类型和复杂类型

数值型number
字符型string
布尔型boolean
未初始化undefined
空值

null

number

js不区分小数和整数,Number

123//整数

123.2//浮点数
1.23e3//科学计数法

-56//负数

NaN// not a number

Infinity//表示无限大

字符串

"abc"

'abc'

布尔值 

true、false

逻辑运算

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

||    一个为真,结果为真

!  真即假,假即真

比较运算符 

=

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

===   绝对等于(类型一样,值一样,结果为true)

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

浮点数问题 

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

null和underfined 

null  空
underfined  未定义

数组

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

//保证代码的可读性,尽量使用[]
var arr = [1,2,3,4,5 , 'hello' ,null ,true];
new Array (1,12,3,4,4,5, 'hello ');

取数组下标:如果越界了,就会

  undefined

对象 

对象是大括号,数组是中括号
每个属性之间使用逗号隔开,最后一个不需要添加

/ /Person person = new Person(1,2,3,4,5);

var person = {
name : "qinjiang" ,

age: 3,
tags: ['js ', 'java' , ' web ' , '...']
}

取对象的值

person.name
>"qinjiang"
person. age
>3 

‘use strict’ 严格检查模式

'use strict' 严格检查模式,预防JavaScript的随意性导致产生的一些问题,必须写在JavaScript的第一行

局部变量建议都使用let定义

字符串类型详解

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

2.注意转义字符 \

\'

\n

\t

\u4e2d \u#### Unicode字符

\x41                  Ascll字符

3.多行字符串编写 

 // tab在上面 esc键下面

var msg = 

hello

world

你好

你好a

4.模板字符串

        let name = "xiaoxian";

        let age = "18";

        let msg = `你好呀,${name}`

5.字符串长度

str.length

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

console.log(student[ 0])

s
undefined

student[0] = 1

1
console.log(student)

student
undefined

7.大小写转换

//注意,这里是方法,不是属性了

student.toUppercase()
student.toLowercase()

8、student.indexOf('t')

9、substring

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

student.substring(1,3)//[1,3)

数组详解 

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

var arr = [1,2,3,4,5,6]

1.长度

arr.length 

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

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

arr.indexOf(2)
1

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

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

4.push(). pop()尾部

push:压入到尾部
pop:弹出尾部的一个元素

5.unshift() , shift()头部

unshift:压入到头部
shift:弹出头部的一个元素 

6.排序sort()

(3)["B","c","A"]
arr.sort(
(3)["A","B","C"]

7.元素反转reverse()

(3)["A","B","c"]
arr.reverse()
(3) ["c","B","A"]

8.concat ()

(3)["c","B","A"
]arr.concat([1,2,3])
(6)["c","B","A",1,2,3]
arr
(3)["c","B","A"]

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

9、连接符join

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

(3) ["c","B","A"]
arr.join('-')
"C-B-A"

10.多维数组

arr = [[1,2],[3,4],["5", "6"]];
arr[1][1]
4

对象详解

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

Js中对象,{....}表示一个对象,键值对描述属性xxxx: xxxx,多个属性之间使用逗号隔开,最后一个属性不加逗号 

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

var person = {
name : "kuangshen",

age: 3,
email: "24736743@qq.com",
score: 0
}

1.对象赋值 

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

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

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.判断一个属性是否是这个对象自身拥有的 

person.hasownProperty( 'tostring ')

false
person. hasownProperty( 'age ' )

true

流程控制

if循环

var age = 3;
if (age>0){//第一个判断
alert("青年");
}else if(age<18) {/第二个判断
alert("青年");
}else {//否则,,
alert("成年");
}

while循环

避免程序死循环

while(age<100){
age = age + 1;
console. 1og(age)
}

for循环

for (let i = 0; i < 100 ; i++) {
console.log(i)

forEach循环 

var age = [12,3,12,3,12,3,12,31,23,123];
//函数
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])
}
}

Map和Set

var map = new Map([['tom' ,100],['jack ' ,90], [ 'haha',80]]);

var name = map. get( 'tom');//通过key获得value
map. set( 'admin ',123456);//新增或修改
map.delete( "tom"');//删除

set.add(2);//添加

set.delete(1);//删除
console.log(set.has(3));//是否包含某个元素!

iterator

遍历数组

//通过for of / for in下标

var arr = [3,4,5]
for (var x of arr){
console.log(x)
}

遍历map

var map = new Map([["tom" ,100],["jack",90],["haha",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)

函数 

定义函数

定义方式一

绝对值函数

        function abs(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 = o; i<arguments.length ;i++){
console.log(arguments[i]);
}
if(x>=0){
return x;

}else{
return -×;
}

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

rest

ES6引入的新特性,获取除了已经定义的参数之外的所有参数

        function aaa(a,b){

            console.log("a=>"+a);

            console.log("b=>"+b);

            console.log(rest);

        }

变量的作用域 

在javascript中, var定义变量实际是有作用域的。
假设在函数体中声明,则在函数体外不可以使用(非要想实现的话,后面可以研究一下闭包)

function qj {
var x =1;

x = x +1;
}
x =x +2; //Uncaught ReferenceError: x is not defined

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

 function qj() {
var x = 1;
x=x+1;
}
function qj2(){
var x = 'A';

x=x+1;
}

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

function qj() {
var x = 1;
//内部函数可以访问外部函数的成员,反之则不行function qj2 {
var y =x + 1;  // 2
}
var z = y + 1; // Uncaught ReferenceError: y is not defined

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

function qj (){
var x = 1;
function qj2(){
var x = 'A';
console.log( 'inner'+x); // outer1
}
console.log( 'outer'+x); // innerA

qj2()
}
qj()
 

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

提升变量的作用域

function qj() {
var x = "x" + y;

console.log(x);

var y = 'y';
}

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

function qj2 (){
var y;
var x= "x" + y;

console.log(x);

y = 'y ';
}

这个是在JavaScript建立之初就存在的特性。养成规范:所有的变量定义都放在函数的头部,不要乱放,便于代码维护

function qj2() {
var x = 1,
y =x +1,
z ,i,a; //undefined
//之后随意用

全局函数 

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

全局对象window 

var x = 'xxx ';

alert(x);
alert(window.x);//默认所有的全局变量,都会自动绑定在 window对象下;

alert()这个函数本身也是一个window变量; 

var x= 'xxx ';


window.alert(x);


var old_alert = window.alert;


//old_alert(x);
window.alert = function (){
};
//发现alert()失效了

window.alert(123);


//恢复
window.alert = old_alert;

window.alert(456);

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

规范

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

//唯一全局变量
var KuangApp = {};
//定义全局变量
KuangApp. name = 'kuangshen ';

KuangApp. add = function (a,b) {
return a + b;
}

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

局部作用域let

function aaa() {
for (var i = 0; i < 100;i++) {
console.log(i)
}
console.1og(i+1);//问题:i 出了这个作用域还可以使用
}

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

function 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 

const PI = '3.14'; //只读变量

console.log(PI);
PI = '123'; // TypeError: Assignment to constant variable

方法

定义方法

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

        var kuangshen = {

            name: '秦疆',

            bitrh: 2000,

            //方法

            age: function(){

                //今年–出生的年

                var now = new Date().getFullYear();

                return now-this.bitrh;

            }

        }

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

apply

在js中可以控制this指向

function getAge() {
//今年–出生的年
var now = new Date().getFullYear();

return now-this.bitrh;
}
var kuangshen = {
name:'秦疆',

bitrh: 2000,

age: getAge
};
//kuangshen.age() ok


getAge.apply(kuangshen,[ ]);// this,指向了kuangshen,参数为空

内部对象 

Date

基本使用

var now = new Date(); //sat Jan 04 2020 10:47:06 GMT+0800(中国标准时间)now. get.FullYear(); //年
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(1659768799532)) //时间戳转为时间

转换

now = new Date(1659768799532)
Sat Aug 06 2022 14:53:19 GMT+0800 (中国标准时间)
now.toLocalestring // 注意,调用是一个方式,不是一个属性!

f toLocalestring(){ [native code] }
now.toLocaleString()
'2022/8/6 14:53:19'

now.toGMTString()
'Sat, 06 Aug 2022 06:53:19 GMT'

JSON 

什么是JSION

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

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

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

格式:

对象都用{ }

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

JSON字符串和JS对象的转化 

            var user = {

            name:"qinjiang",

            age : 3,

            sex: '男'

        }

        //对象转化为json字符串 {"name " : "qinjiang" , "age" : 3 , "sex":"男"}

        var jsonuser = JSON.stringify(user);

       

        //json字符串转化为对象参数为json字符串

        var obj = JSON.parse('{"name":"qinjiang","age":3, "sex":"男"}');

JSON 和JS对象的区别

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

Ajax 

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

面向对象编程

什么是面向对象

javascript、Java、c#。。。。面向对象;javascript有些区别!

类:模板
对象:具体的实例

在JavaScript这个需要大家换一下思维方式

原型

        var user = {

            name:"qinjiang",

            age : 3,

            run:function(){

                console.log(this.name+"run...")

            }

        }

        var xiaoming = {

            name: "xiaoming"

        };

           

        xiaoming._proto__ = Student;

        var Bird = {

            fly : function () {

            console.log( this.name + "f1y....");

            }

        };

        //小明的原型是Student

        xiaoming._proto_ = Bird;

        function Student(name){

            this.name = name;

        }

        //给student新增一个方法

        Student.prototype.hello = function(){

        alert("Hello")

    }

class继承 

class关键字,是在ES6引入的

定义一个类,属性,方法

    class Student{

        constructor(name){

            this.name = name;

        }

        hello(){

            alert("hello")

        }

    }

var xiaoming = new student("xiaoming");

var xiaohong = new student("xiaohong");
xiaoming.hello()

继承

//定义一个学生的类
  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")

操作BOM对象 

浏览器介绍

JavaScript和浏览器的关系?
JavaScript的诞生为了在浏览器中运行

BOM:浏览器对象模型

E 6~11

Chrome

Safari

window

window代表浏览器窗口

window.alert(1)
undefined
window.innerHeight
754
window.innerWidth
876
window.outerHeight
824
window.outerWidth
1536

Navigator封装了浏览器的信息

navigator.appName
'Netscape'
navigator.appVersion
'5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77'
navigator.userAgent
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77'
navigator.platform
'Win32'

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

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

screen

代表屏幕尺寸

screen.width
1536 px
screen.height
864 px

location

代表当前页面的URL信息

host: "https://www.baidu.com"
href: "https://www.baidu.com"
protocol: "http:"
reload: ƒ reload()//重新加载
//设置新的地址
location.assign('https://www.bilibili.com/video/BV1JJ41177di?p=19&vd_source=aa04dfefd1d4c4be247a705b194b06c2')

document

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

ocument.title
'Title'
document.title='ply'
'ply'

获取具体的文档树节点

<dl id="app">
  <dt>Java</dt>
  <dd>JavaSE</dd>
  <dd>JavaEE</dd>
</dl>
<script>
  var dl = document.getElementById('app');
</script> 

劫持cookie原理

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

服务器端可以设置cookie:httpOnly  

history 

代表浏览器的历史记录 

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

操作DOM对象 

DOM:文档对象模型

核心

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

更新:更新Dom节点
遍历dom节点:得到Dom节点

删除:删除一个Dom节点

添加:添加一个新的节点

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

    <div id="father">

    <h1>标题一</h1>

    <p id="p1">p1</p>

    <p class="p2">p2</p>

</div>

    <script>

        //对应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 = "435";//修改文本的值

id1.innerHTML = "<h2>345</h2>"; //可以解析HTML文本标签 

操作js

id1.style.color = "red";

id1.style.fontSize = "50px";

id1.style.padding = "2em"; 

删除节点 

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

<div id="father">

<h1>标题</h1>

<p id="p1">p1</p>

<p class="p2">p2</p>

</div>

<script>
       //删除节点
        //删除节点步骤:先获取父节点,再通过父节点删除自己
       var h1 = document.getElementsByTagName("h1");
       var p1 = document.getElementById("p1");
       var p2 = document.getElementsByClassName("p2")
       var father = document.getElementById("father");

       father.removeChild(p1);

        删除是一个动态的过程
        father.removeChild(father.children[0]);
        father.removeChild(father.children[1]);
        father.removeChild(father.children[2]);
 

注意:删除多个节点的时候,children是在时刻变化的 

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

        var js = document.getElementById("js");

        var list = document.getElementById("list");

        //通过js创建一个新的标签 
        var newP = document.createElement("p");//创建一个p标签
        newP.id = "newP";
        newP.innerText = "Hello Massimo";
        list.appendChild(newP);

        //创建一个标签节点(通过这个属性,可以设置任意的值)
        var myScript = document.createElement("script");
        myScript.setAttribute("type" , "text/javascript");
        list.appendChild(myScript);

        //创建一个style标签
        var myStyle = document.createElement("style");
        myStyle.setAttribute("type" , "text/css");
        myStyle.innerHTML = "body{background-color:chartreuse;}";
        document.getElementsByTagName("head")[0].appendChild(myStyle);

insert 

        var p1 = document.createElement("p");
        p1.id = "p1";
        p1.innerText = "前端";
        var ee = document.getElementById("ee");
        list.insertBefore(p1,ee);

操作表单 

表单是什么   form DOM树

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

表单的目的:提交信息

<form action="">
    <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="woman" id="girl">女
    </p>
</form>

    <script>
        var input_text = document.getElementById("username");
        //得到输入框的值
         input_text.value;

         //修改输入框的值
        input_text.value = "2334325";

        var boy_radio = document.getElementById("boy");
        var girl_radio = document.getElementById("girl");
        //对于单选框,多选框等等固定的值,boy_radio.value只能取到当前的值

        //查看返回的结果,是否为true,如果为true,则被选中
        boy_radio.checked;
    </script>

提交表单 

<!-- MD5工具类--> <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script> </head>

<form action="#" method="post">
    <p>
        <span>用户名:</span><input type="text" id="username" name="username">
    </p>
    <p>
        <span>密码:</span><input type="password" id="password" name="password">
    </p>

<!-- 绑定事件  onclick 被点击-->
    <button type="submit" οnclick="aaa()">提交</button>
</form>

    <script>
       function aaa() {
            var uname = document.getElementById("username");
            var pwd = document.getElementById("password");
            console.log(uname.value);
            console.log(pwd.value);
            //MD5算法
            pwd.value = md5(pwd.value);
            console.log(pwd.value);
       }
    </script>

表单绑定提交事件
onsubmit = 绑定一个提交检测的函数,true,false 
将这个结果返回给表单,使用onsubmit函数
onsubmit = "return aaa()"

JQuery

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

获取JQuery

JQuery官网

公式 : $(selector).action()

    <script src="lib/jquery-3.6.0.js"></script>

</head>

<body>

    <a href="" id="test-jquery">点我</a>

    <script>

        document.getElementById('id');

        //选择器就是css的选择器

        $('#test-jquery').click(function () {

        alert("Hello JQuery");

    })

    </script>

</body>

JQuery选择器 

JQuery能够使用css中的所有选择器

<script>

        //标签

        document.getElementsByTagName();

        //id

        document.getElementById();

        //类

        document.getElementsByClassName();

    


       $('p').click();//标签选择器
       $('#id1').click();//id选择器
       $('.class1').click();//class选择器
</script>
 

文档工具站: jQuery API 中文文档 | jQuery API 中文在线手册 | jquery api 下载 | jquery api chm (cuishifeng.cn)

事件 

    <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>

jQuery操作Dom元素

节点文本操作

$('#test-ul li[name=python]').text();//获得值

$('#test-ul li[name=python]').text("设置值 ");//设置值 

$('#test-ul').html();

$('#test-ul').html("<span>js</span>");//设置为html格式的值

css的操作 

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

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

$('#test-ul li[name=python]').show();

$('#test-ul li[name=python]').hide();

$('#test-ul li[name=python]').toggle();显示和隐藏切换 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值