js的常用技能

1、JavaScript中字符串的常见操作 
2、javascript中数组的常见操作 
3、JavaScript中日期的相关操作 
4、JavaScript中函数的相关操作 
5、JavaScript中的BOM对象 
6、HTML DOM对象中的节点查找(全局查找以及局部查找) 
7、JavaScript中增加时间的两种操作 
8、如何获取节点对应的文本值以及如何对标签内部的文本值进行赋值(很常用) 
9、如何对一个标签的属性进行赋值和取值 
10、节点操作(重点) 
11、模态对话框 
12、复选框如何表示选中与未选中以及相应案例 
13、如何自JavaScript当中改变css样式 
14、事件介绍(onsubmit、onkeyup、onfocus)


概括:一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:核心(ECMAScript) 、文档对象模型(DOM) Document object model (整合js,css,html)、浏览器对象模型(BOM) Broswer object model(整合js和浏览器)、 
Javascript 在开发中绝大多数情况是基于对象的.也是面向对象的。 
简单地说,ECMAScript 描述了以下内容: 
语法 
类型 
语句 
关键字 
保留字 
运算符 
对象 (封装 继承 多态) 基于对象的语言,使用对象. 
这里写图片描述 
本篇博客将围绕上面三部分进行叙述。

1、JavaScript中字符串的常见操作
 
  1. x.length ----获取字符串的长度

  2. x.toLowerCase() ----转为小写

  3. x.toUpperCase() ----转为大写

  4. x.trim() ----去除字符串两边空格,但是不能去掉两边的换行符和制表符

  5. x.charAt(index) ----返回字符串中第index位置的字符

  6. x.indexOf(findstr) ----返回字符串中出现str的第一个位置(从前向后找)

  7. x.lastIndexOf(findstr,fromIndex) ----返回字符串中出现str的第一个位置(从后向前找) ==> 用着有点不对

  8.  
  9.  
  10. x.substr(start) ----返回字符串从start位置开始到结尾的字符串

  11. x.substr(start, length) ----start表示开始位置,length表示截取长度 ==> 前面是索引位置,后面是长度

  12. x.substring(start) ----返回字符串从start位置开始结尾的字符串

  13. x.substring(start,end) ----返回字符串从start位置开始,到索引end位置结束的字符串(左闭又开) ===> 前面是索引位置,后面也是索引位置

  14.  
  15.  
  16. x.slice(start, end) ----切片操作字符串,(注意:无论下标是怎样的,查找的时候都是从前向后进行查找) [左闭右开]

  17. 其中slice的用法和substring的用法基本相同.

  18.  
  19. x.replace(findstr,tostr) ---- 字符串替换

  20. x.split(); ----分割字符串

  21. x.concat(addstr) ---- 拼接字符串

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

其实JavaScript中字符串的操作和JavaPython基本差不都,下面截取一张Java中常见字符串的操作。 
这里写图片描述 
这里写图片描述 
这里写图片描述 
代码示例:

 
  1. <script>

  2. var str1 = "I love Python"

  3. console.log("字符串的长度是:"+str1.length)

  4. console.log("字符串转化为小写:"+str1.toLowerCase())

  5. console.log("字符串转化为大写:"+str1.toUpperCase())

  6.  
  7. var str2 = "Hadoop and Spark"

  8. console.log(str2.trim())

  9. console.log("字符串中第三个位置的字符是:"+str1.charAt(3))

  10. console.log("字符串中出现字母P的第一个位置是:"+str1.indexOf("P"))

  11. console.log("字符串中出现字符串Python的第一个位置是:"+str1.indexOf("Python"))

  12. //下面这个感觉结果不对啊

  13. console.log("字符串中从后向前出现字符串P的第一个位置是:"+str1.lastIndexOf("P"))

  14.  
  15. console.log("返回字符串从第二个位置开始到结尾的字符串:"+str2.substr(2))

  16. console.log("返回字符串从第二个位置开始,并截取3个长度的串"+str2.substr(2,3))

  17. console.log("返回字符串从第二个位置开始到结尾的字符串"+str2.substring(2))

  18. console.log("返回字符串从第二个位置开始到第五个位置的字符串(左闭右开)"+str2.substring(2,5))

  19. //下面这两行是无效的

  20. console.log("返回字符串从第二个位置开始到-1位置的字符串"+str2.substring(1,-2))

  21. console.log("返回字符串从-5位置开始到-1位置的字符串"+str2.substring(-5,-2))

  22.  
  23. //切片的相关操作:看来切片的功能是最强大的

  24. console.log("返回字符串从第二个位置开始到结尾的字符串"+str2.slice(2))

  25. console.log("返回字符串从第二个位置开始第五个位置的字符串(左闭右开)"+str2.slice(2,5))

  26. console.log("返回字符串从第二个位置开始到-1位置的字符串"+str2.slice(1,-2))

  27. console.log("返回字符串从-5位置开始到-1位置的字符串"+str2.slice(-5,-2))

  28.  
  29. </script>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

运行结果: 
这里写图片描述

2、JavaScript中数组的常见操作
 
  1. 1、Array.prototype.join(separator) :循环遍历数组中的每一个元素(数组中的元素可以是字符串,

  2. 也可以是数字),并用指定的分隔符separator将它们拼接起来,结果返回一个字符串。

  3.  
  4. 2、Array.prototype.concat:用于字符串的拼接的操作(当然也可以拼接数组)

  5.  
  6. 3、Array.prototype.sort:不是按照数字大小进行排序的,而是按照最高位的ASCII码排序的。(这是一个坑)

  7.  
  8. 如何将数字按照大小排序呢?

  9. function sort_arr(m,n) {

  10. return n - m;

  11. }

  12. 然后sort中的参数写的是sort_arr这个函数。

  13.  
  14. 4、数组的切片操作和字符串的切片操作是一样的.

  15.  
  16. 5、数组中的push pop这两个方法模拟的是一个栈操作

  17. x.push(value, ...) 压栈

  18. x.pop() 弹栈

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

代码示例:

 
  1. <script>

  2. var arr1 = ["spark","Hadoop",10]

  3. var arr2 = new Array("spark","Hadoop",10)

  4. for (var i=0;i<arr1.length;i++){

  5. console.log(arr1[i])

  6. }

  7. for (var j=0;j<arr2.length;j++){

  8. console.log(arr2[j])

  9. }

  10. console.log("-------------")

  11. str3 = arr1.join("_")

  12. console.log(str3)

  13. str4 = arr2.join("-")

  14. console.log(str4)

  15. console.log("-------------")

  16. var a = [1,2,3]

  17. var b = a.concat([4,5])

  18. var c = a.concat(7,8)

  19. console.log(a.toString())

  20. console.log(b.toString())

  21. console.log(c.toString())

  22. console.log("-------------")

  23. var d = [100,56,34,8,6,7]

  24. e = d.sort()

  25. //数组本身的顺序发生了变化

  26. console.log(d)

  27. console.log(e)

  28. var arr4 = ["abc","hbfds","dfe","b"]

  29. arr4.sort()

  30. console.log(arr4)

  31.  
  32. function sort_arr(m,n) {

  33. return n - m;

  34. }

  35. var d2 = [100,56,34,8,6,7]

  36. d2.sort(sort_arr)

  37. console.log(d2)

  38.  
  39. //数组中的切片方法,和我们字符串中的方法是一样的:

  40. var arr5 = ["spark","Hadoop","hbase","scala","Django"]

  41. console.log("返回数组中第1个索引位置之后的列表"+arr5.slice(1))

  42. console.log("返回数组中第1个索引位置到第四个索引位置之后的列表"+arr5.slice(1,4))

  43. console.log("返回数组中第1个索引位置到第-1个索引位置之后的列表"+arr5.slice(1,-1))

  44. console.log("返回数组中第-3个索引位置到第-1个索引位置之后的列表"+arr5.slice(-3,-1))

  45.  
  46. //数组中的插入和删除的方法:push 和 pop

  47. var arr6 = ["spark","Hadoop","hbase","scala","Django"]

  48. arr6.push("dj")

  49. console.log(arr6.toString())

  50. arr6.pop("dj")

  51. console.log(arr6.toString())

  52.  
  53.  
  54. </script>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

运行结果: 
这里写图片描述

3、JavaScript中日期的常见操作
 
  1. 获取日期和时间

  2. getDate() 获取日

  3. getDay () 获取星期

  4. getMonth () 获取月(0-11)

  5. getFullYear () 获取完整年份

  6. getYear () 获取年

  7. getHours () 获取小时

  8. getMinutes () 获取分钟

  9. getSeconds () 获取秒

  10. getMilliseconds () 获取毫秒

  11. getTime () 返回累计毫秒数(从1970/1/1午夜)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

代码示例:

 
  1. <script>

  2. <!--构造一个函数,获取当前最新的时间-->

  3. function getCurrrentDate() {

  4. //1、创建Date对象

  5. var date = new Date()

  6. console.log(date.toString())

  7. //2、获取当前年份

  8. var year = date.getFullYear()

  9. console.log("当前年份是:"+year)

  10. //3、获取当前月份,js中月份是从0到11,所以我们要加1

  11. var month = date.getMonth() + 1;

  12. console.log("当前月份是:"+month)

  13. //4、获得当前日期(即几号)

  14. var day = date.getDate()

  15. console.log("当前日期是:"+day)

  16. //5、获得当前小时

  17. var hour = date.getHours()

  18. console.log("当前小时是:"+hour)

  19. //6、获得当前分钟

  20. var min = date.getMinutes()

  21. console.log("当前分钟是:"+min)

  22. //7、获得当前秒

  23. var sec = date.getSeconds();

  24. console.log("当前秒是:"+sec)

  25. //8、获得当前星期几

  26. var week = date.getDay() //在js当中星期几是用数字表示的

  27. console.log("当前星期几:"+week)

  28. return year + "年" +changeNum(month)+"月"+day+"日"+hour+"时"+min+"分"+sec+"秒"+parseWeek(week)

  29. }

  30.  
  31. console.log(getCurrrentDate())

  32.  
  33. //解决:自动补齐两位数字的方法

  34. function changeNum(num) {

  35. if (num < 10)

  36. return "0"+num;

  37. else

  38. return num;

  39. }

  40. console.log(changeNum(6))

  41.  
  42. //解决:将数字0-6转换成星期日到星期六

  43. function parseWeek(week) {

  44. var arr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];

  45. return arr[week];

  46. }

  47. console.log(parseWeek(0));

  48. </script>

  49.  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

运行效果: 
这里写图片描述

4、JavaScript中函数的常见操作
 
  1. function 函数名 (参数){
<br> 函数体;

  2. return 返回值;

  3. }

  4. 功能说明:

  5.  
  6. 可以使用变量、常量或表达式作为函数调用的参数

  7. 函数由关键字function定义

  8. 函数名的定义规则与标识符一致,大小写是敏感的

  9. 返回值必须使用return

  10. Function 类可以表示开发者定义的任何函数。

  11.  
  12. 函数的内置对象arguments:函数参数的集合

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

函数的内置对象arguments的相关应用:

 
  1. <script>

  2. //内置对象arguments的应用1

  3. function add(x,y)

  4. {

  5. var sum = 0

  6. for (var i=0;i<arguments.length;i++)

  7. {

  8. sum += arguments[i]

  9. console.log(arguments[i])

  10. }

  11. console.log("总和是:"+sum)

  12. }

  13. add(2,3)

  14.  
  15. //内置对象arguments的应用2:判断函数参数的个数是否正确

  16. function add_sum(a,b,c)

  17. {

  18. if (arguments.length != 3)

  19. console.log("函数的参数个数不对!")

  20. else

  21. alert("传入参数的个数success!")

  22. }

  23.  
  24.  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

运行结果:

 
  1. 2

  2. 3

  3. 总和是:5

  4. 函数的参数个数不对!

  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4
5、JavaScript中的BOM对象

注意:jQuery当中没有定时器,只有Js当中有 
window对象: 
所有浏览器都支持 window 对象。 
概念上讲.一个html文档对应一个window对象. 
功能上讲: 控制浏览器窗口的. 
使用上讲: window对象不需要创建对象,直接使用即可.

 
  1. alert() 显示带有一段消息和一个确认按钮的警告框。

  2. confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。

  3. prompt() 显示可提示用户输入的对话框。

  4.  
  5. //setInterval可以让一个函数循环往复的操作.

  6. setInterval(func,time):按照指定的周期(以毫秒计)来调用函数或计算表达式,从而设置一个定时器。

  7. clearInterval(arg) 取消由 setInterval() 设置的定时器,arg的数值是setInterval()的返回值。

  8.  
  9. //setTimeout只会让一个函数执行一次.

  10. setTimeout(func,time) :在指定的毫秒数后调用函数或计算表达式。

  11. clearTimeout(arg) :取消由 setTimeout() 方法设置的定时器,arg的数值是setTimeout()的返回值。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

示例程序1:

 
  1. <script>

  2. <!--我们对一个BOM对象操作,实际上就是对一个窗口对象经操作-->

  3. // alert的使用

  4. aa = alert("确定")

  5. console.log(aa)

  6.  
  7. // confirm的使用

  8. bb = confirm("是否确认操作?")

  9. console.log(bb)

  10. if (bb)

  11. console.log("OK")

  12. else

  13. console.log("False")

  14.  
  15. // prompt的使用:类似于Python中的Input按钮

  16. cc = prompt("please input a number:")

  17. console.log("用户输入的数值是:"+cc)

  18.  
  19.  
  20. </script>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

示例程序2:

 
  1. <script>

  2. <!--每隔一秒钟打一个OK-->

  3. function print_ok() {

  4. console.log("OK")

  5. }

  6. //注意:首次执行时间是2秒钟之后,而不是上来就开始执行

  7. var ID = setInterval(print_ok,2000)

  8. console.log("ID的数值是:"+ID)

  9. //print_ok还没有执行,就已经被取消了

  10. clearInterval(ID)

  11.  
  12. //注意:首次执行时间是3秒钟之后,而不是上来就开始执行,并且只会执行一次

  13. var ID2 = setTimeout(print_ok,3000)

  14. console.log("ID2的数值是:"+ID2)

  15. clearTimeout(ID2)

  16.  
  17. </script>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

示例程序3:定时器的应用(很重要)

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3.  
  4. <head>

  5. <meta charset="UTF-8">

  6. <title>Title</title>

  7. <style>

  8. [type="text"]{

  9. width: 250px;

  10. }

  11. </style>

  12. </head>

  13.  
  14. <body>

  15. <input type="text">&nbsp;<button>start</button>&nbsp;<button>stop</button>

  16. </body>

  17.  
  18. <script>

  19.  
  20. button_ele = document.getElementsByTagName("button")

  21. input_ele = document.getElementsByTagName("input")[0]

  22. //给标签按钮增加一个事件监听器

  23. var ID;

  24. console.log("ID的初始数值是:"+ID)

  25. button_ele[0].onclick = function(){

  26. //一旦ID已经有了数值,用户的操作就置为无效:否则点一次开了一次定时器

  27. if (ID == undefined){

  28. input_ele.value = new Date().toString()

  29. //1s钟之后就会周而复始的更新值

  30. ID = setInterval(set_time,1000)

  31. }

  32. }

  33. button_ele[1].onclick = function(){

  34. clearInterval(ID)

  35. console.log("ID此时的数值是:"+ID)

  36. ID = undefined;

  37. }

  38. function set_time() {

  39. input_ele.value = new Date().toString()

  40. }

  41.  
  42. </script>

  43.  
  44. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

部分截图: 
这里写图片描述

6、HTML DOM对象中的节点查找(全局查找与局部查找)

HTML DOM: 
HTML Document Object Model(文档对象模型) 
HTML DOM 定义了访问和操作HTML文档的标准方法 
HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树) 
document与element节点是重点

 
  1. 直接查找节点:

  2. document.getElementById(“idname”)

  3. document.getElementsByTagName(“tagname”)

  4. document.getElementsByName(“name”)

  5. document.getElementsByClassName(“name”) ===> 这个只有在属性中含有name属性的时候才可以用

  6.  
  7. 导航节点属性:

  8. parentElement 或者 parentNode // 父节点标签元素

  9.  
  10. children // 所有子标签

  11.  
  12. firstElementChild // 第一个子标签元素

  13.  
  14. lastElementChild // 最后一个子标签元素

  15.  
  16. nextElementtSibling // 下一个兄弟标签元素

  17.  
  18. previousElementSibling // 上一个兄弟标签元素

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

节点的查找实际上分为两种方式:全部查找与局部查找

 
  1. 获取标签的第一种方法:通过document全局查找

  2. 获取标签的第二种方法:获取父标签在父亲的局部范围内去查找

  • 1
  • 2
  • 1
  • 2

代码示例:

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3.  
  4. <head>

  5. <meta charset="UTF-8">

  6. <title>Title</title>

  7. </head>

  8.  
  9. <body>

  10. <div id="div1">

  11. <div name="yuan">i am div2</div>

  12. <div class="div2">i am div1</div>

  13. <div id="div3">i am div3</div>

  14. <p>hello p</p>

  15. </div>

  16. </body>

  17.  
  18. <script>

  19. div2 = document.getElementsByClassName("div2")[0]

  20. console.log(div2)

  21.  
  22. //父节点标签的查找方法:parentNode也可以

  23. div2_par = div2.parentElement

  24. console.log(div2_par)

  25. div2_parr = div2.parentNode

  26. console.log(div2_parr)

  27.  
  28. //子节点标签的查找方法:别用childNodes

  29. div2_par_child = div2_par.children

  30. console.log(div2_par_child)

  31.  
  32. //第一个子标签元素:firstChild别用

  33. div2_par_firstchild = div2_par.firstElementChild

  34. console.log(div2_par_firstchild)

  35.  
  36. //最后一个子标签元素:lastChild别用

  37. div2_par_lastchild = div2_par.lastElementChild

  38. console.log(div2_par_lastchild)

  39.  
  40. div2_ele = document.getElementsByClassName("div2")[0]

  41. //上一个兄弟标签

  42. div2_ele_up = div2_ele.previousElementSibling

  43. console.log(div2_ele_up)

  44. //下一个兄弟标签

  45. div2_ele_down = div2_ele.nextElementSibling

  46. console.log(div2_ele_down)

  47. </script>

  48.  
  49. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

运行结果: 
这里写图片描述 
代码示例2:全局查找与局部查找

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Title</title>

  6. </head>

  7.  
  8. <body>

  9. <div class="item"></div>

  10. <div id="d1">

  11. <div class="item">hello you</div>

  12. </div>

  13. </body>

  14. <script>

  15. //获取标签的第一种方法:通过document全局查找

  16. var eles = document.getElementsByClassName("item")

  17. console.log(eles[1])

  18.  
  19. //获取标签的第二种方法:获取父标签在父亲的局部范围内去查找

  20. var div_d1 = document.getElementById("d1")

  21. //在div_d1的局部范围内去查找

  22. var hello_div = div_d1.getElementsByClassName("item")

  23. console.log(hello_div[0])

  24. </script>

  25. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
7、Js中增加事件的两种操作
 
  1. 方法1:

  2. onclick="fun1()"

  3.  
  4. 方法2:

  5. item2_ele.onclick = function(){

  6. alert("OK_two")

  7. }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

代码示例:

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Title</title>

  6. </head>

  7. <body>

  8. <input type="button" class="item1" value="click_one" onclick="fun1()">

  9. <input type="button" class="item2" value="click_two">

  10. </body>

  11.  
  12. <script>

  13. function fun1() {

  14. alert("OK_one!")

  15. }

  16. item2_ele = document.getElementsByClassName("item2")[0]

  17. item2_ele.onclick = function(){

  18. alert("OK_two")

  19. }

  20. </script>

  21.  
  22. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
8、如何获取节点对应的文本值以及如何对标签内部的文本值进行赋值(很常用)
 
  1. 获取节点对应的文本值:当标签里面没有标签的时候,两个属性是没有区别的

  2. 方法1:console.log(ele.innerText) ==> 获取一个标签里面的所有文本

  3. 方法2:console.log(ele.innerHTML) ==> 获取一个标签里面的所有文本以及相应的内部标签

  4. 两者的区别:

  5. innertText只获取标签内部对应的文本(仅获取文本,结果是一个字符串),而innerHTML将标签内部的

  6. 标签都会给拿出来(识别标签)

  7. eg:

  8. PPP

  9. <p>PPP</p>

  10.  
  11. 如何对标签内部的文本进行赋值:

  12. 方法1:ele2[0].innerText = "<a href=''>点击</a>"

  13. 方法2:ele2[0].innerHTML = "<a href=''>点击</a>"

  14. 两者的区别:

  15. 无论怎么赋值,都是用你当前当前的内容替换掉标签里面的所有的内容,但是前者文本渲染,

  16. 后者按标签去渲染(即后者识别标签),所以通常后者用的多。

  17.  
  18.  
  19. 但是我自己在操作的时候很少去赋值一个标签,基本上都是克隆。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

示例1:获取节点对应的文本值

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3.  
  4. <head>

  5. <meta charset="UTF-8">

  6. <title>Title</title>

  7. </head>

  8.  
  9. <body>

  10. <div class="c1">DIV</div>

  11.  
  12. <div class="c2">

  13. <p>PPP</p>

  14. </div>

  15. </body>

  16.  
  17. <script>

  18. var ele = document.getElementsByClassName("c1")[0]

  19. //打印出节点

  20. console.log(ele)

  21. //获取节点对应的文本值

  22. console.log(ele.innerText)

  23. console.log(ele.innerHTML)

  24.  
  25. var ele2 = document.getElementsByClassName("c2")

  26. //打印出节点

  27. console.log(ele2[0])

  28. //获取节点对应的文本值:innertText只获取标签内部对应的文本(仅获取文本,结果是一个字符串),而innerHTML将标签内部的

  29. //标签都会给拿出来(识别标签)

  30. console.log(ele2[0].innerText)

  31. console.log(typeof ele2[0].innerText)

  32. console.log(ele2[0].innerHTML)

  33. console.log(typeof ele2[0].innerHTML)

  34.  
  35. </script>

  36.  
  37.  
  38. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

效果: 
这里写图片描述 
示例2:如何对标签内部的文本值进行赋值(innerText)

 
  1. <body>

  2. <div class="c1">DIV</div>

  3.  
  4. <div class="c2">

  5. <p>PPP</p>

  6. </div>

  7. </body>

  8.  
  9. <script>

  10. var ele = document.getElementsByClassName("c1")[0]

  11. var ele2 = document.getElementsByClassName("c2")

  12.  
  13. //如何对标签内部的文本进行赋值:此时将会对标签里面的所有内容进行赋值

  14. ele2[0].innerText = "<a href=''>点击</a>"

  15. console.log(ele2[0].innerText)

  16. </script>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

效果展示: 
这里写图片描述 
示例3:如何对标签内部的文本值进行赋值(innerHTML)

 
  1. <body>

  2. <div class="c1">DIV</div>

  3.  
  4. <div class="c2">

  5. <p>PPP</p>

  6. </div>

  7. </body>

  8.  
  9. <script>

  10. var ele = document.getElementsByClassName("c1")[0]

  11. var ele2 = document.getElementsByClassName("c2")

  12.  
  13. //如何对标签内部的文本进行赋值:此时将会对标签里面的所有内容进行赋值

  14. ele2[0].innerHTML = "<a href=''>点击</a>"

  15. console.log(ele2[0].innerHTML)

  16. console.log(ele2[0].innerText)

  17. //即无论怎么赋值,都是用你当前当前的内容替换掉标签里面的所有的内容,但是前者文本渲染,后者按标签去渲染

  18. </script>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

运行结果: 
这里写图片描述

9、如何对一个标签的属性进行赋值和取值

对于这个知识点,我当年学的时候遇到了很多的坑,每次遇到这里都是各种百度,总之就是各种坑………. 
这里写图片描述 
就是上面的这么简单,总结如下: 
在JavaScript中:

 
  1. 获取属性值的操作:

  2. 方法1:elementNode.getAttribute(属性名)

  3. 方法2:elementNode.属性名

  4.  
  5. 给属性赋值的操作:

  6. 方法1:elementNode.setAttribute(属性名,value)

  7. 方法2:elementNode.属性名 = 属性值

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

到底啥是属性名和属性值啊?(呵呵) 
这里写图片描述 
示例程序:

 
  1. <body>

  2. <input type="text" id="t1" value="123">

  3. </body>

  4.  
  5. <script>

  6. var ele = document.getElementById("t1")

  7. //获取属性值

  8. //第一种方法:elementNode.getAttribute(属性名)

  9. console.log(ele.getAttribute("value"))

  10. console.log(ele.getAttribute("id"))

  11. console.log(ele.getAttribute("type"))

  12. //第二种方法:elementNode.属性名

  13. console.log(ele.value)

  14. console.log(ele.id)

  15. console.log(ele.type)

  16.  
  17. //设置属性值

  18. //设置属性值1:elementNode.setAttribute(属性名,value)

  19. ele.setAttribute("value","456")

  20. ele.setAttribute("id","t2")

  21. ele.setAttribute("type","button")

  22. //设置属性值2:elementNode.属性名 = value

  23. ele.value = "789"

  24. ele.id = "t6"

  25. ele.type = "button"

  26.  
  27. </script>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
10、关于classlist的相关操作
 
  1. elementNode.className :查看标签对应的class名字(是个字符串,但是是个数组)

  2. elementNode.classList.add:向class列表中添加一个属性

  3. elementNode.classList.remove:向class列表中删掉一个属性

  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

示例程序:

 
  1. <body>

  2. <input type="text" class="d1 d2" value="python">

  3.  
  4. </body>

  5.  
  6. <script>

  7. ele = document.getElementsByTagName("input")[0]

  8. console.log(ele.className)

  9. console.log(typeof ele.className)

  10. //class属性对应的实际上是一个列表(数组)

  11. console.log(ele.classList)

  12. console.log(ele.classList[0])

  13. console.log(ele.classList[1])

  14. //给input标签的class增加一个属性

  15. ele.classList.add("d3")

  16. ele.classList.remove("d1")

  17.  
  18. //class列表中有则不添加,没有删除也不报错

  19. </script>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

效果展示: 
这里写图片描述 
示例2:class的一个应用(左侧菜单案例)

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Title</title>

  6. <style>

  7. .left_menu{

  8. width:20%;

  9. height: 500px;

  10. background-color: wheat;

  11. float: left;

  12. }

  13. .content_menu{

  14. width: 80%;

  15. height: 500px;

  16. background-color: darkgray;

  17. float: left;

  18. }

  19. .title{

  20. /*将标题进行居中*/

  21. text-align: center;

  22. background-color: crimson;

  23. line-height: 40px;

  24. color: white;

  25. }

  26. /*含有con的属性会自动隐藏*/

  27. .hide{

  28. display: none;

  29. }

  30. .item{

  31. margin: 20px;

  32. }

  33. </style>

  34. </head>

  35.  
  36. <body>

  37. <div class="outer">

  38. <div class="left_menu">

  39. <div class="item">

  40. <div class="title">菜单一</div>

  41. <div class="con ">

  42. <p>111</p>

  43. <p>111</p>

  44. <p>111</p>

  45. </div>

  46. </div>

  47. <div class="item">

  48. <div class="title">菜单二</div>

  49. <div class="con hide">

  50. <p>222</p>

  51. <p>222</p>

  52. <p>222</p>

  53. </div>

  54. </div>

  55. <div class="item">

  56. <div class="title">菜单三</div>

  57. <div class="con hide">

  58. <p>333</p>

  59. <p>333</p>

  60. <p>333</p>

  61. </div>

  62. </div>

  63. </div>

  64. <div class="content_menu">哈哈</div>

  65. </div>

  66. </body>

  67.  
  68. <script>

  69. var eles = document.getElementsByClassName("title")

  70. for (var i=0;i<eles.length;i++){

  71. eles[i].onclick = function(){

  72. //将标签的class列表去掉hide这个值

  73. this.nextElementSibling.classList.remove("hide")

  74. //javascript当中不能拿到坑爹的兄弟标签

  75. var arr_item = this.parentElement.parentElement.children

  76. console.log(arr_item)

  77. var ele_curr_p = this.parentElement

  78. for (var i=0;i<arr_item.length;i++){

  79. console.log(arr_item[i])

  80. // 在这里面判断两个标签是否相同

  81. if (arr_item[i] != ele_curr_p){

  82. arr_item[i].children[1].classList.add("hide")

  83. }

  84. }

  85. }

  86. }

  87. </script>

  88.  
  89. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89

效果展示: 
这里写图片描述

10、节点操作
 
  1. JavaScript当中:

  2.  
  3. 创建节点:

  4. createElement(标签名) :创建一个指定名称的元素.

  5.  
  6. 给节点增加属性,并进行赋值:

  7. elementNode.setAttribute(属性名,value)

  8. 注意:elementNode.属性名 = 属性值 方法将失效

  9.  
  10. 添加节点:

  11. 追加一个子节点(将作为最后的子节点)

  12. parentnode.appendChild(newnode)

  13.  
  14. 删除节点:

  15. parentnode.removeChild(子节点):获得要删除的元素,通过父元素调用删除

  16.  
  17. 替换节点:

  18. parentnode.replaceChild(newnode, oldnode);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

代码示例:

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Title</title>

  6. <style>

  7. .parent_node{

  8. width: 400px;

  9. height: 400px;

  10. background-color: wheat;

  11. }

  12. </style>

  13. </head>

  14.  
  15. <body>

  16. <div class="parent_node">

  17. <h1>hello 码农</h1>

  18. </div>

  19. <button>add_img</button>

  20. <button>remove_h1</button>

  21. <button>replace_h1</button>

  22. </body>

  23.  
  24. <script>

  25. //获取到增加、删除、替换按钮

  26. var add_button = document.getElementsByTagName("button")[0]

  27. var remove_button = document.getElementsByTagName("button")[1]

  28. var replace_button = document.getElementsByTagName("button")[2]

  29.  
  30. //获取父节点

  31. var ele_div = document.getElementsByClassName("parent_node")[0]

  32.  
  33. add_button.onclick = function(){

  34. //创建img节点

  35. var img_ele = document.createElement("img")

  36. //为节点的属性赋值

  37. img_ele.setAttribute("src","biancheng.png")

  38. //添加节点

  39. ele_div.appendChild(img_ele)

  40.  
  41.  
  42. //在创建一个input节点: <input type="text" id="t1" value="123" class="item">

  43. var ele_input = document.createElement("input")

  44. ele_input.setAttribute("type","text")

  45. ele_input.setAttribute("id","t1")

  46. ele_input.setAttribute("value","123")

  47. ele_input.setAttribute("class","123")

  48. //在添加节点

  49. ele_div.appendChild(ele_input)

  50. }

  51.  
  52. remove_button.onclick = function () {

  53. //找到h1节点

  54. var h1_button = document.getElementsByTagName("h1")[0]

  55. //进行删除操作

  56. ele_div.removeChild(h1_button)

  57. }

  58.  
  59. replace_button.onclick = function () {

  60. //找到h1节点

  61. var h1_button = document.getElementsByTagName("h1")[0]

  62. //创建一个input节点

  63. var ele_input = document.createElement("input")

  64. ele_input.setAttribute("type","text")

  65. ele_input.setAttribute("id","t2")

  66. ele_input.setAttribute("value","456")

  67. ele_input.setAttribute("class","456")

  68.  
  69. //进行删除操作

  70. ele_div.replaceChild(ele_input,h1_button)

  71. }

  72.  
  73.  
  74. </script>

  75.  
  76. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76

效果展示: 
这里写图片描述

11、模态对话框

代码示例:

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Title</title>

  6. <style>

  7. .back{

  8. width: 100%;

  9. height: 1200px;

  10. background-color: firebrick;

  11. }

  12. .fade{

  13. /*参照物是当前屏幕:绝对脱离文档流*/

  14. position: fixed;

  15. /*满屏: 0 0 0 0 */

  16. top:0;

  17. bottom: 0;

  18. left: 0;

  19. right: 0;

  20. background-color: darkgray;

  21. /*设置透明度*/

  22. opacity: 0.8;

  23. }

  24. .model{

  25. /*绝对脱离文档流,参照物实际上是body*/

  26. width: 400px;

  27. height: 200px;

  28. background-color: wheat;

  29. position: absolute;

  30. top:50%;

  31. left:50%;

  32. /*下面的两个值实际上是高和宽的一半*/

  33. margin-left:-200px ;

  34. margin-top: -100px;

  35. border-radius: 5%;

  36. }

  37. .hide{

  38. display: none;

  39. }

  40. </style>

  41. </head>

  42.  
  43. <body>

  44. <div class="back">

  45. <input type="button" value="show" id="show">

  46. </div>

  47. <!--fade在这里面表示遮罩层:实际上就是一个大背景-->

  48. <div class="fade hide"></div>

  49. <!--弹出框:-->

  50. <div class="model hide">

  51. <input type="button" value="点击" id="click">

  52. </div>

  53. </body>

  54.  
  55. <script>

  56. var ele = document.getElementById("show")

  57. var div_fade = document.getElementsByClassName("fade")[0]

  58. var div_model = document.getElementsByClassName("model")[0]

  59. var ele2 = document.getElementById("click")

  60.  
  61. ele.onclick = function(){

  62. div_fade.classList.remove("hide")

  63. div_model.classList.remove("hide")

  64. }

  65.  
  66. ele2.onclick = function(){

  67. //下面这种方式是推荐的

  68. this.parentElement.classList.add("hide")

  69. this.parentElement.previousElementSibling.classList.add("hide")

  70. }

  71.  
  72. </script>

  73.  
  74. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74

效果展示: 
这里写图片描述

12、复选框如何表示选中与未选中以及相应的案例

这里写图片描述 
代码示例:

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Title</title>

  6. </head>

  7.  
  8. <body>

  9. <button>全选</button>

  10. <button>反选</button>

  11. <button>取消</button>

  12. <hr>

  13. <!--border可以设置边框-->

  14. <table border="1">

  15. <tr>

  16. <th> </th>

  17. <th>姓名</th>

  18. <th>年龄</th>

  19. <th>班级</th>

  20. </tr>

  21.  
  22. <tr>

  23. <!--checkbox代表复选框的意思-->

  24. <td><input type="checkbox"></td>

  25. <td>111</td>

  26. <td>111</td>

  27. <td>111</td>

  28. </tr>

  29.  
  30. <tr>

  31. <!--checkbox代表复选框的意思-->

  32. <td><input type="checkbox"></td>

  33. <td>222</td>

  34. <td>222</td>

  35. <td>222</td>

  36. </tr>

  37.  
  38. <tr>

  39. <!--checkbox代表复选框的意思-->

  40. <td><input type="checkbox"></td>

  41. <td>333</td>

  42. <td>333</td>

  43. <td>333</td>

  44. </tr>

  45.  
  46. </table>

  47. </body>

  48.  
  49. <script>

  50. <!--checked == true|"checked"表示复选框被选中-->

  51. var button_eles = document.getElementsByTagName("button")

  52. var ele_checkbox = document.getElementsByTagName("input")

  53.  
  54. for (var i=0;i<button_eles.length;i++){

  55. button_eles[i].onclick = function(){

  56. if (this.innerText == "全选")

  57. {

  58. for (var j=0;j<ele_checkbox.length;j++){

  59. ele_checkbox[j].checked = "checked"

  60. ele_checkbox[j].checked = true

  61. }

  62. }

  63. else if(this.innerText == "反选")

  64. {

  65. for (var j=0;j<ele_checkbox.length;j++){

  66. if (ele_checkbox[j].checked){

  67. ele_checkbox[j].checked = false

  68. }

  69. else

  70. ele_checkbox[j].checked = true

  71. }

  72. }

  73. else{

  74. for (var j=0;j<ele_checkbox.length;j++){

  75. //复选框不选中的表达方式

  76. ele_checkbox[j].checked = false

  77. }

  78. }

  79. }

  80.  
  81. }

  82. </script>

  83.  
  84. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
13、如何在JavaScript当中改变css样式
 
  1. <p id="p2">Hello world!</p>

  2. document.getElementById("p2").style.color="blue";

  3. .style.fontSize=48px

  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

代码示例:

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Title</title>

  6. </head>

  7.  
  8. <body>

  9. <div id="d1">

  10. <div class="item">hello you</div>

  11. </div>

  12. <input type="button" value="点我">

  13. </body>

  14.  
  15. <script>

  16. div_item = document.getElementsByClassName("item")[0]

  17. console.log(div_item)

  18. input_button = document.getElementsByTagName("input")[0]

  19. console.log(input_button)

  20.  
  21. //为点击按钮增加相应的事件监听器:点击字体之后变颜色

  22. input_button.onclick = function(){

  23. //注意:value值要加双引号

  24. div_item.style.color = "blue";

  25. div_item.style.fontSize="48px";

  26. div_item.style.backgroundColor = "red";

  27. }

  28. </script>

  29.  
  30. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

效果展示: 
这里写图片描述

14、JavaScript中的事件介绍
 
  1. onsubmit:

  2. 当表单在提交时触发,该属性也只能给form元素使用.

  3. 应用场景: 在表单提交前验证用户输入是否正确.如果验证失败.在该方法中我们应该阻止表单的提交.(验证在前端与后端都要进行验证,在默认事件发生之前,先进行验证)

  4.  
  5. 默认submit作用:在form表单中,当点击这个按钮后,会将form表单中所有的数据打包然后发到server端,这个事件是这个按钮自带的一个事件(默认的提交事件)。

  6.  
  7. 阻止默认的提交事件的两种方法:

  8. return false;

  9. e.preventDefault()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

onsubmit代码示例(事件默认是这样子的):

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Title</title>

  6. </head>

  7.  
  8. <body>

  9. <form action="" id="form">

  10. 姓名:<input type="text"><br>

  11. 密码:<input type="password"><br>

  12. <input type="submit">

  13. </form>

  14. </body>

  15.  
  16. <script>

  17. var ele = document.getElementById("form")

  18. //e指的是所有事件的状态:e实际上就是发生的事件:event对象封装了我们所有事件的状态

  19. ele.onsubmit = function(e){

  20. alert("123") //这一行代码可以理解为登陆验证

  21. //通过return false可以阻止默认事件的发生(:向服务器端发送form表单的数据)

  22. //return false;

  23. //e.preventDefault()

  24. }

  25. </script>

  26.  
  27. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

放行之前的效果: 
这里写图片描述 
放行之后的效果: 
这里写图片描述 
从效果上我们可以看出,如过在前端验证未通过,数据包将不能发送到服务端。

 
  1. onkeydown:

  2.  
  3. Event 对象:Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。

  4. 事件通常与函数结合使用,函数不会在事件发生前被执行!event对象在事件发生时系统已经创建好了,并且会在事件函数被调用时传给事件函数.我们获得仅仅需要接收一下即可.比如onkeydown,我们想知道哪个键被按下了,需要问下event对象的属性,这里就时KeyCode.

  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

代码示例:

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Title</title>

  6. </head>

  7.  
  8. <body>

  9. <input type="text" id="test">

  10. </body>

  11.  
  12. <script>

  13. var ele = document.getElementById("test")

  14. //按下鼠标之后的反应

  15. ele.onkeyup = function(event){

  16. //先做兼容

  17. event = event || window.event

  18. //keynum实际上是ASCII编码

  19. var keynum = event.keyCode

  20. console.log(keynum)

  21. var keychar = String.fromCharCode(keynum)

  22. if (keychar == "B"){

  23. alert("OK")

  24. }

  25. }

  26. </script>

  27.  
  28. </html>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
获取焦点与失去焦点的主要作用是用于提示用户的相关操作
  • 1
  • 1

代码示例:

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Title</title>

  6. </head>

  7.  
  8. <body>

  9. <!--placeholder在这里面实际上是一个提示的作用-->

  10. <input type="text" placeholder="用户名">

  11. <input type="text" value="用户名" id="search">

  12. </body>

  13.  
  14. <script>

  15. var ele = document.getElementById("search")

  16. //获取焦点

  17. ele.onfocus = function(){

  18. this.value = ""

  19. }

  20. //失去焦点

  21. ele.onblur = function(){

  22. if (!this.value.trim())

  23. this.value = "用户名"

  24. }

  25. </script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值