我是靠谱客的博主 激动钢铁侠,最近开发中收集的这篇文章主要介绍JavaScript学习笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

该笔记是学习bilibili中遇见狂神说大咖的随手笔记,主要是由文字,代码和图片结合记录,有利于回顾(路漫漫其修远兮,吾将上下而求索),希望大家多写代码,多写笔记,多思考,最重要的就是坚持。推荐该大咖网址——》bilibili狂神说


文章目录

1.基本使用及HelloWorld

2.数据类型快速浏览

3.严格检查模式strict

4.数组类型详解

5.对象类型详解

6.分支和循环详解

7.Map和Set集合

8.函数定义和参数获取

9.变量的作用域、let、contst详解

10.方法的定义和调用、apply

11.Date日期对象

12.JSON对象

13.面向对象原型继承

14.面向对象class继承

15.操作BOM对象

16.获得DOM节点

17.更新DOM节点

18.删除DOM节点

19.创建和插入DOM节点

20.获得和设置表单的值

21.表单提交验证及前段密码MD5加密

22.初识jQuery及公式

23.jQuery选择器

24.jQuery事件

25.jQuery操作DOM元素


一、简介

1、概述:

JavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码。

诞生于1995年,当时的主要目的是验证表单的数据是否合法。

JavaScript本来应该叫Livescript,但是在发布前夕,想搭上当时超热的java顺风车,临时把名字改为了JavaScript。(也就是说js跟java没有关系,当时只是想借助java的名气)。

js组成部分:
在这里插入图片描述
(1)核心(ECMAScript):这一部分主要是js的基本语法。

(2)BOM:Brower Object Model(浏览器对象模型),主要是获取浏览器信息或操作浏览器的,例如:浏览器的前进与后退、浏览器弹出提示框、浏览器地址栏输入网址跳转等操作等。

(3)DOM:Document Object Model(文档对象模型),此处的文档暂且理解为html,html加载到浏览器的内存中,可以使用js的DOM技术对内存中的html节点进行修改,用户从浏览器看到的是js动态修改后的页面。(增删改查)

二、特点

交互性(它可以做的就是信息的动态交互)

安全性(不允许直接访问本地硬盘)

跨平台性(只要是可以解析js的浏览器都可以执行,和平台无关)
JavaScript和Java的区别

在这里插入图片描述

基本使用及HelloWorld

引入javascript

1.html内部引入

    <script>
        alert('hello,world');
    </script>

2.html外部引入

<!--注意: script必须成对出现-->
    <script src="js/qj.js"></script>

3.基本语法

    <script>
        //1.定义变量
        var num=1;
        alert(num);
        var name="kuangshenshuo"
        //2.条件控制
        if(2>1){
            alert("true");
        }
        //严格区分大小写
        //console.log()在浏览器的控制台打印变量!System.out.println();   alert()是弹框
    </script>

JavaScript的注释

单行注释:		//	注释语句		快捷键ctrl+/
多行注释:		/* 注释语句 */    快捷键ctrl+shift+/   
注意:多行注释相互不能嵌套使用,只能在多行注释里面使用单行注释!

数据类型快速浏览

js的数据类型:

数值型:number(凡是数字都是数值型,不区分整数和小数)
字符串:string(凡是引号包裹起来的内容全部都是字符串)
布尔:boolean(truefalse)
对象类型:object(特殊取值null)
未定义型:undefined

Java的数据类型:

整数:byte short int long
小数:float double
字符:char 
布尔:boolean
字符串:String

算术运算符:

+	-	*	/	%	++	--

注意:

1.由于js中的小数和整数都是number类型,不存在类似整数除以整数还是整数的结论。

2.字符串和其他的数据使用+号运算,会连接成一个新的字符串。

3.字符串使用除了+以外的运算符:如果字符串本身是一个数字,那么会自动转成number进行运算否则就会返回一个NaN的结果,表示这不是一个数字。NaN:not a number

<script>
 
    alert(1234 / 1000 * 1000); // 1234
  
    var s = "12";
     s -= 10;
    alert(s);  // 2
 
    var s = "aa";
    s -= 10;
    alert(s);  // NaN       Not a Number 不是一个数字
 
    var s = "12";
    s += 10;
    alert(s);       // 1210 
 
</script>

关系(比较)运算符

>		>=		<		<=  	!=		
==	等于(只比较内容)	===	恒等于(比较内容的同时还要比较数据类型)
注意:关系运算符返回的结果只有两个:true / false
<script>
 
    // 请问1 : 3 > 5, 结果为 ?
    alert(3 > 5);   // false
 
    // 请问2 : “22” == 22  结果为 ?
    alert("22" == 22); // true  (仅仅判断数值)
 
    // 请问3 : “22” === 22  结果为 ?
    alert("22" === 22);  // false  (恒等于, 数值和类型都要相等)
    
</script>

逻辑运算符

&&true&&false		====>false
||true||false			====>true
! 		非		!true				====>false
false(理解):false,  0,  null,  undefined 
true(理解):true,0,null,undefined
 
针对 && 顺口溜: 找第一个出现的假值. (一假即假)
针对 || 顺口溜: 找第一个出现的真值. (一真即真)

演例:

<script>
 
    // 短路与 (一假即假)
    // 口诀 : 找第一个为假的值.
 
    // 请问1 :  8 < 7 && 3 < 4, 结果为 ?
    alert(8 < 7 && 3 < 4);  // false
 
    // 请问2 :  -2 && 6 + 6 && null 结果为 ?
    alert(-2 && 6 + 6 && null); // null
 
    // 请问3 :  1 + 1 && 0 && 5  结果为 ?
    alert(1 + 1 && 0 && 5); // 0

</script>
<script>
 
    // 短路或 : 一真即真.
    // 口诀 : 找第一个为真的值.
 
    // 请问1 :  0 || 23 结果为 ?
    alert(0 || 23); // 23
 
    // 请问2 :  0 || false || true  结果为 ?
    alert(0 || false || true); // true
 
    // 请问3 :  null || 10 < 8 || 10 + 10结果为 ?
    alert(null || 10 < 8 || 10 + 10);  // 20
 
    // 请问4 :  null || 10 < 8 || false结果为 ?
    alert(null || 10 < 8 || false); // false
    
</script>

三元运算符

条件?表达式1:表达式2
如果条件为true,返回表达式1的结果
如果条件为false,返回表达式2的结果

严格检查模式strict

    <script>
        // <!--   前提:IDEA需要设置支持ES6语法
        // 'use strict';严格检查模式,预防JavaScript的随意性导致产生的一些问题
        // 且必须写在第一行-->
        // <!--    局部变量建议都是用let去定义-->
    'use strict';
    //全局变量;
       let i=1;
    //ES6
    </script>

js是弱类型语言,不重视类型的定义,但js会根据为变量赋值的情况自定判断该变量是何种类型:

数值型:var i = 1;	var d = -245;
字符串:var str = "狂神说";
布尔型:var b = true;

对比Java:java是强类型的语言,注重类型的定义,Java定义类型如下

整型:int i = 1;
浮点型:double d = 2.35;
字符串:String str = “狂神说”;
布尔型:boolean b = true;

大小写转换:

//注意:这里是方法,不是属性
student.toUpperCase()
student.toLowerCase()

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()头部

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

6.排序sort()

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

7.元素反转

["A","B","C"]
arr.reverse()
["C","B","A"]

8.concat()

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

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

9.连接符join

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

10.多维数组

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

对象类型详解

var 对象名={
	属性名:属性值,
	属性名:属性值,
	属性名:属性值
}
  var person = {
      name: "kuangshen",
      age: 3,
      score: 0
}

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

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

person.haha = "haha"
"haha"
person

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

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

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

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

分支和循环详解

1.if条件语句

<script>
 
      var score = 59;
 
      if (score >= 90) {
          alert("优秀");
      } else if (score >= 80) {
          alert("良好");
      } else if (score >= 60) {
          alert("及格");
      } else {
          alert("不及格");
      }
 
  </script>

2.switch分支语句

<script>
 
      var score = 59;
 
      // 需求 : 将需要一个整型数值, 不想要小数点.
      // window 对象的 parseInt 方法.
      score = window.parseInt(score / 10 + "");
      // alert(score);
 
      switch (score) {
          case 10:
          case 9:
              alert("优秀!");
              break;
          case 8:
              alert("良好!");
              break;
          case 7:
          case 6:
              alert("及格!");
              break;
          default:
              alert("不及格!");
              break;
      }
 
  </script>

3.while、do…while、for语句

<script>
 
    // 需求 : 统计 1~100 之间能够被3和7整除的数字个数
 
    var count = 0;
 
    // 1. 遍历 1~100 之间的所有整型数值
    for (var i = 1; i <= 100; i++) {
 
        // 2. 判断
        if (i % 3 == 0 && i % 7 == 0) {
            // alert(i);
            console.log(i);
            // 3. 累加个数
            count++;
        }
    }
 
    // 4. 查看结果
    // alert(count);
    console.log(count);
 

forEach循环:

var age = [12,3,34,56,778,54,565];
//函数
age.forEach(function(vaule){
		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集合

map:

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

set:无序不重复的集合

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

iterator:

//通过for of 打印数组
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)
}

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

函数定义和参数获取

定义函数

函数是命名的独立的语句段,这个语句段可以被当作一个整体来引用和执行:

格式:

function 函数名(形式参数){函数体}
调用函数:函数名(实际参数);
        function abs(x){

            if(x>=0){
                return x;
            }else{
                return -x;
            }
        }
//一旦执行return代表函数结束,返回结果!
//如果没有执行return ,函数执行完也会返回结果,结果就是undefined

如果函数需要返回值、直接使用return 返回、不会像java一样要考虑返回值的类型

如果函数需要传递参数、不需要指定参数的类型、直接使用变量即可

<script type="text/javascript">
 
    // 定义一个函数 : function
    function demo3(a, b) {
        return a + b;
    }
 
    // 调用函数 :
    alert(demo3(10, 20));//显示30
 
</script>

匿名函数是没有名字的函数

function(形式参数){函数体}
调用方式:将匿名函数赋值给一个变量,通过变量名调用函数
定义函数并赋值给变量:var fn = function(形式参数){函数体}
调用函数:fn(实际参数);
<script type="text/javascript">
 
    // 匿名函数 : 没有名称的函数
    var func = function(i, u) {
        alert(i + " love " + u);
    }
 
    // 调用函数 :
   func("柳岩", "小白");//显示柳岩love小白

</script>

假设不存在参数,如何规避?

var abs = function(x){
	//手动抛出异常
	if(typeof x!=='number'){
	throw 'Not a Number';
}
	if(x>=0){
       return x;
  }else{
        return -x;
 }
}
arguments是一个js免费赠送的关键字
代表传递进来的所有的参数,是一个数组

js中出现二个重名的函数名、后者会把前面的覆盖掉

对比java、java有重载(同名不同参)、重写(同名同参同返回值类型、方法体不一样)

<script type="text/javascript">
 
    // 定义一个函数 : function
    function demo4(a, b) {
        alert("调用1...");
    }
 
   function demo4() {
       alert("调用2...");
   }
 
    demo4(10, 20);
    demo4();
 
</script>

变量的作用域、let、contst详解

1.变量

var 变量名称 = 存储的数据;   	(variable 变量)

2.变量命名规范

1.	只能由字母、数字、_(下划线)、$(美元符号)组成。
2.	不能以数字开头。
3.	命名中不能出现-(js会理解成减号进行减法的操作),不能和关键字冲突。

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

    <script>
        function qj(){
            var x = 1;
            x = x +1;
        }
        x = x+2;//Uncaught ReferenceError: x is not defined
    </script>

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

    <script>
        function qj(){
            var x = 1;
            x = x +1;
        }
       function qj2(){
            var x = 'A';
            x = x +1;
       }
    </script>

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

function qj(){
	var x= 1;
	function qj2(){
		var y= x+1;
}
var z=y+1;//Uncaught ReferenceError: x 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的赋值;

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

全局对象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实际上只有一个全局作用域,任何变量(函数也可以视为变量),假设没有在函数作用范围内找到,就会向外查找,如果在全局作用域都没有找到,就会报错 Refrence

规范

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

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

把自己的代码全部放入自己定义的唯一空间名字中,降低全局命名冲突问题~
jQuery中就是使用的该方法:jQuery.name,简便写法:$()

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

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

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

都用let去定义局部作用域的变量;

常量 const

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

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

在ES6引入了常量关键字 const

var PI = '3.14';//只读变量
console.log(PI);
PI = '214';//TypeError: Assignment to constant variable.
console.log(PI);

方法的定义和调用、apply

1.方法就是把函数放在对象的里面,对象只有两个东西:属性和方法
在这里插入图片描述2.this.代表什么?拆开上main的代码看看
在这里插入图片描述
this是无法指向的,是默认指向调用它的那个对象的;

apply

在js中可以控制this指向

  <script>
    function getAge(){
      //今年- 出生的年
      var now = new Date().getFullYear();
      return now-this.birth;
      
    }
    var kuangshen = {
      name: '秦疆',
      birth: 2000,
      age: getAge()
      
    }
    //kuangshen.age()ok
    getAge().apply(kuangshen,[]);//this ,指向了 kuangshen,参数为空
  </script>

Date日期对象

标准对象

在这里插入图片描述

Date

基本使用

    <script>
       var now = new Date();
       now.getFullYear();//年
       now.getMonth ();//月
       now.getDate();//日
       now.getDay();//星期几
       now.getHours();//时
       now.getMinutes();//分
       now.getSeconds();//秒
       now.getTime();//时间戳
       console.log(new Date(1578106175991))//获得当前时间
    </script>

转换
在这里插入图片描述


JSON对象

JSON是什么

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

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

在javascript中,一切皆为对象,任何js支持的类型都可以用JSON表示:
格式

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

JSON字符串和就是对象的转化

  <script>
    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":"男"}');
  </script>
  

JSON和JS对象的区别

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

AJAX

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

面向对象原型继承

原型对象
javascript、java、c#------面向对象;但是javascript有些区别!
  • 类:模板
  • 对象:具体实例
    在这里插入图片描述

面向对象class继承

class继承

ES5

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

//ES6之后========================

<script>
	//定义一个学生的类
	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 XiaoStudent("xiaohong",1);
</script>

本质:查看对象原型
在这里插入图片描述
原型链

在这里插入图片描述


操作BOM对象

BOM: 浏览器对象模型

window代表浏览器窗口
window.alert(1)
undefined
window.innerHeight
205
window.innerWidth
1366
window.outerHeight
754
window.outerWidth
1382
Navigator(不建议使用)

Navigator封装了浏览器的信息:

navigator.appName
"Netscape"
navigator.appVersion
"5.0 (Windows)"
navigator.userAgent
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0"
navigator.platform
"Win32"

大多数时候,我们不会使用navigator对象,因为会被人为修改!
不建议使用这些属性来判断和编写代码

screen

代表屏幕尺寸

screen.width
1366px
screen.height
768px
location(重要)

location代表当前页面的URL信息

在这里插入图片描述

document(内容DOM)

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

document.title
"Title"
document.title='kuangshenshuo'
"kuangshenshuo"

获取具体的文档树节点

<dl id="app">
    <dt>java</dt>
    <dd>javaSE</dd>
    <dd>javaEE</dd>
</dl>

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

获取cookie

在这里插入图片描述
劫持cookie原理

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

服务器端可以设置cookie:httpOnly

history(不建议使用 )

history代表浏览器的历史记录

history.back()//后退
his.foreard()//前进

获得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();


更新DOM节点

更新节点
<div id="id1">


</div>

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

操作文本

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

操作css


id1.style.color = 'yellow';//属性使用 字符串 包裹
id1.Style.fontSize='200px';//-转 驼峰命名问题
id1.style.padding = '2em';

删除DOM节点

删除节点

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

<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.removeChild(self)
		//删除是一个动态的过程;
		father.removeChild(father.children[0])
		father.removeChild(father.children[1])
		father.removeChild(father.children[2])
</script>

注意:

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


插入DOM节点

插入节点

我们获得了某个Dom节点,假设这个dom节点是空的,我们通过innerHTML就可以增加一个元素了,但是这个Dom节点已经存在元素了,我们就不能这么干了!会产生覆盖

追加
<p id="js">javaScript</p>
<div id="list">
    <p id="javaSE">javaSE</p>
    <p id="javaEE">javaEE</p>
    <p id="javaME">javaME</p>
</div>
<script>
    var js = document.getElementById('js');
    var list = document.getElementById('list');
    list.appendchild(js);//追加到后面
</script>

效果:

在这里插入图片描述

创建一个新的标签,实现插入
<script>
	var js = document.getElementById('js');//已经存在的节点
    var list = document.getElementById('list');
    //通过JS创建一个新的节点
    var newP = document.creatElement('p');//创建一个p标签
    newP.id = 'newP';
    newP.innerText = 'Hello,Kuangshen';
    //创建一个标签节点
    var myScript = document.creatElement('script');
    myScript.setAttribute('type','text/javascript');
    
    //可以创建一个style标签
    var myStyle = document.creatElement('style');//创建了一个空style标签
    myStyle.setAttribute('type','text/css');
    myStyle.innerHTML = 'body{background-color:chartreuse;}';//设置标签内容
    
    document.getElementByTagName('head')[0].appendChild(myStyle);
</script>
insertBefore
var ee = document.getElementById('ee');
var js = document.getElementById('js');
var list = document.getElementById('list');
//要包含的节点.insertBefore(newNode,targetNode)
list.insertBefore(js,ee);

获得和设置表单的值

表单是什么?form-----DOM树
  • 文本框----text
  • 下拉框----select
  • 单选框----radio
  • 多选框----checkbox
  • 隐藏域----hidden
  • 密码框----password

  • 表单的目的:提交信息
获得要提交的信息
<body>
    <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 = "woman" 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  = "value";
        
        //对于单选框,多选框等等固定的值,boy_radio.value只能取到当前的值
        boy_radio.checked;//查看返回的结果,是否为true,如果为true,则被选中。
        girl_radio.checked = true;//赋值
        
    </script>
</body>

表单提交验证及前段密码MD5加密

提交表单。md5加密密码,表单优化
<!DOCTYPE html>
<html lang = "en">
    <head>
        <meta charset = "UTF-8">
        <title>Title</title>
        <!--MD5加密工具类-->
        <script src = "https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js">
        	
        </script>
    </head>
    <body>
        <!--表达绑定提交事件
			οnsubmit= 绑定一个提交检测的函数,true,false
			将这个结果返回给表单,使用onsubmit接收
		-->
        <form action = "https://www.baidu.com" method = "post" onsubmit = "return aaa()">
            <p>
            	<span>用户名:</span><input type="text" id = "username" name = "username"/>
        	</p>
            <p>
            	<span>密码:</span><input type="password" id = "password" />
        	</p>
            <input type = "hidden" id = "md5-password" name = "password"> 
            
            <!--绑定事件 onclick 被点击-->
            <button type = "submit">提交</button>
            
        </form>
        
        <script>
        	function aaa(){
                alert(1);
                var username = document.getElementById("username");
                var pwd = document.getElementById("password");
                var md5pwd = document.getElementById("md5-password");
                //pwd.value = md5(pwd,value);
                md5pwd.value = mad5(pwd.value);
                //可以校验判断表单内容,true就是通过提交,false就是阻止提交
                return false;
                
            }
        </script>
        
    </body>
</html>

初识jQuery及公式

javaScript和jQuery的关系?

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

公式:$(selector).action()

<!DOCTYPE html>
<html lang = "en">
    <head>
        <meta charset = "UTF-8">
        <title>Title</title>
        <script src="lib/jquery-3.4.1.js"></script>
    </head>
    <body>
        <a href="" id = "test-jquery">点我</a>
        <script>
        	//选择器就是css选择器
            $('#test-jquery').click(function(){
                alert('hello,jQuery!');
            });
        </script>
    </body>
</html>

jQuery选择器

选择器
//原生js,选择器少,麻烦不好记
//标签
document.getElementByTagName();
//id
document.getElementById();
//class
document.getElementByClassName();

//jQuery css中的选择器它全部都能用!
$('p').click();//标签选择器
$('#id1').click();//id选择器
$('.class1').click;//class选择器

文档工具站:http://jquery.cuishifeng.cn/


jQuery事件

事件

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

mousedown()(jQuery)----按下
mouseenter()(jQuery)
mouseleave()(jQuery)
mousemove()(jQuery)----移动
mouseout()(jQuery)
mouseover()(jQuery)
mouseup()(jQuery)
<!DOCTYPE html>
<html lang = "en">
    <head>
        <meta charset = "UTF-8">
        <title>Title</title>
        <script src="lib/jquery-3.4.1.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>
        	//当网页元素加载完毕之后,响应事件
            //$(document).ready(function(){})
            $(function(){
                $('#divMove').mousemove(function(e){
                    $('#mouseMove').text('x:'+e.pageX+"y:"+e.pageY)
                })
            });
        </script>
    </body>
</html>

jQuery操作DOM元素

操作DOM

节点文本操作

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

CSS的操作

$('#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();

$('#form').ajax()

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

最后

以上就是激动钢铁侠为你收集整理的JavaScript学习笔记的全部内容,希望文章能够帮你解决JavaScript学习笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部