• JavaScript---BOM和DOM


    目录

    1.DOM简单学习:为了满足案例要求

    1.1操作Element对象:

    1.2事件简单学习

    案例1:电灯开关

    2.BOM

    2.1概念:Browser Object Model 浏览器对象模型

    2.2组成:

    2.3Window:窗口对象

    2.3.1创建

    2.3.2方法

    2.3.3属性:

    2.3.4特点

    案例:轮播图

    2.4Location:地址栏对象

    2.4.1创建(获取):

    2.4.2方法:

    2.4.3属性

    2.5History:历史记录对象

    2.5.1创建(获取):

    2.5.2方法:

    2.5.3属性:

    3.DOM:

    3.1概念:

    3.2W3C DOM 标准被分为 3 个不同的部分:

    3.3核心DOM模型:

    3.3.1创建(获取):

    3.3.2方法:

    3.4Element:元素对象

    3.4.1获取/创建:

    3.4.2方法:

    3.5Node:节点对象,其他5个的父对象

    3.5.1特点:

    3.5.2方法:

    3.5.3属性:

    案例:动态表格

    4.HTML DOM

    4.1标签体的设置和获取:innerHTML

    4.2控制元素样式

    5.事件监听机制:

    5.1概念:

    5.2常见的事件:


    1.DOM简单学习:为了满足案例要求

    功能:控制html文档的内容
    获取页面标签(元素)对象:Element
    document.getElementById("id值"):通过元素的id获取元素对象

    1.1操作Element对象:

    1. 修改属性值:
    明确获取的对象是哪一个?
    查看API文档,找其中有哪些属性可以设置
    2. 修改标签体内容:
    属性:innerHTML
    获取元素对象
    使用innerHTML属性修改标签体内容

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <img id="light" src="img/off.gif">
    9. <h1 id="title">悔创阿里杰克马h1>
    10. <script>
    11. //通过id获取元素对象
    12. var light = document.getElementById("light");
    13. alert("我要换图片了。。。");
    14. light.src = "img/on.gif";
    15. /* //1.获取h1标签对象
    16. var title = document.getElementById("title");
    17. alert("我要换内容了。。。");
    18. //2.修改内容
    19. title.innerHTML = "不识妻美刘强东";*/
    20. script>
    21. body>
    22. html>

    1.2事件简单学习

    功能: 某些组件被执行了某些操作后,触发某些代码的执行。

    如何绑定事件

    方式一:直接在html标签上,指定事件的属性(操作),属性值就是js代码。事件:onclick--- 单击事件。

    方式二:通过js获取元素对象,指定事件属性,设置一个函数。

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>事件绑定title>
    6. head>
    7. <body>
    8. <img id="light" src="img/off.gif" onclick="fun();">
    9. <img id="light2" src="img/off.gif">
    10. <script>
    11. // 方式一:直接在html标签上,指定事件的属性(操作),属性值就是js代码。事件:onclick--- 单击事件。
    12. function fun(){
    13. alert('我被点了');
    14. alert('我又被点了');
    15. }
    16. // 方式二:通过js获取元素对象,指定事件属性,设置一个函数。
    17. function fun2(){
    18. alert('咋老点我?');
    19. }
    20. //1.获取light2对象
    21. var light2 = document.getElementById("light2");
    22. //2.绑定事件
    23. light2.onclick = fun2;
    24. script>
    25. body>
    26. html>

    案例1:电灯开关

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>电灯开关title>
    6. head>
    7. <body>
    8. <img id="light" src="img/off.gif">
    9. <script>
    10. /*
    11. 分析:
    12. 1.获取图片对象
    13. 2.绑定单击事件
    14. 3.每次点击切换图片
    15. * 规则:
    16. * 如果灯是开的 on,切换图片为 off
    17. * 如果灯是关的 off,切换图片为 on
    18. * 使用标记flag来完成
    19. */
    20. //1.获取图片对象
    21. var light = document.getElementById("light");
    22. var flag = false;//代表灯是灭的。 off图片
    23. //2.绑定单击事件
    24. light.onclick = function(){
    25. if(flag){//判断如果灯是开的,则灭掉
    26. light.src = "img/off.gif";
    27. flag = false;
    28. }else{
    29. //如果灯是灭的,则打开
    30. light.src = "img/on.gif";
    31. flag = true;
    32. }
    33. }
    34. script>
    35. body>
    36. html>

    2.BOM

    2.1概念:Browser Object Model 浏览器对象模型

    将浏览器的各个组成部分封装成对象。

    2.2组成:

    Window:窗口对象
    Navigator:浏览器对象
    Screen:显示器屏幕对象
    History:历史记录对象
    Location:地址栏对象

    2.3Window:窗口对象

    2.3.1创建

    Window对象不需要创建,可以直接调用(通常省略window)

    2.3.2方法

    方法一:与弹出框有关的方法:

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

    confirm():显示带有一段消息以及确认按钮和取消按钮的对话框:
    如果用户点击确定按钮,则方法返回true
    如果用户点击取消按钮,则方法返回false

    prompt():显示可提示用户输入的对话框:
    返回值:获取用户输入的值

    方法二:与打开关闭有关的方法:

    close():关闭浏览器窗口:谁调用我 ,我关谁
    open():打开一个新的浏览器窗口:返回新的Window对象

    方法三:与定时器有关的方式

    setTimeout():在指定的毫秒数后调用函数或计算表达式。
    参数:
    1. js代码或者方法对象
    2. 毫秒值

    返回值:唯一标识,用于取消定时器
    clearTimeout():取消由 setTimeout() 方法设置的 timeout。
    setInterval():按照指定的周期(以毫秒计)来调用函数或计算表达式。
    clearInterval():取消由 setInterval() 设置的 timeout。

    2.3.3属性:

    1. 获取其他BOM对象:
    history
    location
    Navigator
    Screen:
    2. 获取DOM对象
    document.

    2.3.4特点

    Window对象不需要创建可以直接使用 window使用。 window.方法名();
    window引用可以省略。  方法名();

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Window对象title>
    6. head>
    7. <body>
    8. <input id="openBtn" type="button" value="打开窗口">
    9. <input id="closeBtn" type="button" value="关闭窗口">
    10. <script>
    11. /*
    12. Window:窗口对象
    13. 1. 创建
    14. 2. 方法
    15. 1. 与弹出框有关的方法:
    16. alert() 显示带有一段消息和一个确认按钮的警告框。
    17. confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
    18. * 如果用户点击确定按钮,则方法返回true
    19. * 如果用户点击取消按钮,则方法返回false
    20. prompt() 显示可提示用户输入的对话框。
    21. * 返回值:获取用户输入的值
    22. 2. 与打开关闭有关的方法:
    23. close() 关闭浏览器窗口。
    24. * 谁调用我 ,我关谁
    25. open() 打开一个新的浏览器窗口
    26. * 返回新的Window对象
    27. 3. 与定时器有关的方式
    28. setTimeout() 在指定的毫秒数后调用函数或计算表达式。
    29. * 参数:
    30. 1. js代码或者方法对象
    31. 2. 毫秒值
    32. * 返回值:唯一标识,用于取消定时器
    33. clearTimeout() 取消由 setTimeout() 方法设置的 timeout。
    34. setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
    35. clearInterval() 取消由 setInterval() 设置的 timeout。
    36. 3. 属性:
    37. 1. 获取其他BOM对象:
    38. history
    39. location
    40. Navigator
    41. Screen:
    42. 2. 获取DOM对象
    43. document
    44. 4. 特点
    45. * Window对象不需要创建可以直接使用 window使用。 window.方法名();
    46. * window引用可以省略。 方法名();
    47. */
    48. // 方法一:
    49. /*alert("hello window");
    50. window.alert("hello a")*/
    51. /*
    52. //确认框
    53. var flag = confirm("您确定要退出吗?");
    54. if(flag){
    55. //退出操作
    56. alert("欢迎再次光临!");
    57. }else{
    58. //提示:手别抖...
    59. alert("手别抖...");
    60. }*/
    61. /*
    62. //输入框
    63. var result = prompt("请输入用户名");
    64. alert(result);
    65. */
    66. // 方法二
    67. /* //打开新窗口
    68. var openBtn = document.getElementById("openBtn");
    69. var newWindow;
    70. openBtn.onclick = function(){
    71. //打开新窗口
    72. newWindow = open("https://www.baidu.com");
    73. }
    74. //关闭新窗口
    75. var closeBtn = document.getElementById("closeBtn");
    76. closeBtn.onclick = function(){
    77. // 关闭新窗口
    78. newWindow.close();
    79. }*/
    80. // 方法三:
    81. //一次性定时器
    82. //setTimeout("fun();",2000);
    83. // var id = setTimeout(fun,2000);
    84. //clearTimeout(id);
    85. /* function fun(){
    86. alert('boom~~');
    87. }
    88. //循环定时器
    89. var id = setInterval(fun,2000);
    90. clearInterval(id);
    91. */
    92. /*3. 属性:1. 获取其他BOM对象:
    93. //获取history
    94. var h1 = window.history;
    95. var h2 = history;
    96. alert(h1);
    97. alert(h2);
    98. */
    99. // 2. 获取DOM对象
    100. // var openBtn = window.document.getElementById("openBtn");
    101. // alert(openBtn);
    102. // document.getElementById("");
    103. script>
    104. body>
    105. html>

    案例:轮播图

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>轮播图title>
    6. head>
    7. <body>
    8. <img id="img" src="img/banner_1.jpg" width="100%">
    9. <script>
    10. /*
    11. 分析:
    12. 1.在页面上使用img标签展示图片
    13. 2.定义一个方法,修改图片对象的src属性
    14. 3.定义一个定时器,每隔3秒调用方法一次。
    15. */
    16. //修改图片src属性
    17. var number = 1;
    18. function fun(){
    19. number ++ ;
    20. //判断number是否大于3
    21. if(number > 3){
    22. number = 1;
    23. }
    24. //获取img对象
    25. var img = document.getElementById("img");
    26. img.src = "img/banner_"+number+".jpg";//图片的名称格式都是这样img/banner_ 后面用1,2,3区别不同的图片
    27. }
    28. //2.定义定时器
    29. setInterval(fun,3000);
    30. script>
    31. body>
    32. html>

    2.4Location:地址栏对象

    2.4.1创建(获取):

    1. window.location
    2. location

    2.4.2方法:

    reload():重新加载当前文档。刷新

    2.4.3属性

    href:设置或返回完整的 URL。

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Location对象title>
    6. head>
    7. <body>
    8. <input type="button" id="btn" value="刷新">
    9. <input type="button" id="gobaidu" value="百度">
    10. <script>
    11. //reload方法,定义一个按钮,点击按钮,刷新当前页面
    12. //1.获取按钮
    13. var btn = document.getElementById("btn");
    14. //2.绑定单击事件
    15. btn.onclick = function(){
    16. //3.刷新页面
    17. location.reload();
    18. }
    19. //获取href
    20. // var href = location.href ;
    21. //alert(href);
    22. //点击按钮,去访问www.baidu.cn官网
    23. //1.获取按钮
    24. var goItcast = document.getElementById("gobaidu");
    25. //2.绑定单击事件
    26. goItcast.onclick = function(){
    27. //3.去访问www.itcast.cn官网
    28. location.href = "https://www.baidu.com";
    29. }
    30. script>
    31. body>
    32. html>

    2.5History:历史记录对象

    2.5.1创建(获取):

    1. window.history
    2. history

    2.5.2方法:

    back():加载 history 列表中的前一个 URL。
    forward():加载 history 列表中的下一个 URL。
    go(参数):加载 history 列表中的某个具体页面。
    参数:
    正数:前进几个历史记录
    负数:后退几个历史记录

    2.5.3属性:

    length:返回当前窗口历史列表中的 URL 数量。

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>History对象title>
    6. head>
    7. <body>
    8. <input type="button" id="btn" value="获取历史记录个数">
    9. <a href="09_History对象2.html">09页面a>
    10. <input type="button" id="forward" value="前进">
    11. <script>
    12. /*
    13. History:历史记录对象
    14. 1. 创建(获取):
    15. 1. window.history
    16. 2. history
    17. 2. 方法:
    18. * back() 加载 history 列表中的前一个 URL。
    19. * forward() 加载 history 列表中的下一个 URL。
    20. * go(参数) 加载 history 列表中的某个具体页面。
    21. * 参数:
    22. * 正数:前进几个历史记录
    23. * 负数:后退几个历史记录
    24. 3. 属性:
    25. * length 返回当前窗口历史列表中的 URL 数量。
    26. */
    27. //1.获取按钮
    28. var btn = document.getElementById("btn");
    29. //2.绑定单机事件
    30. btn.onclick = function(){
    31. //3.获取当前窗口历史记录个数
    32. var length = history.length;
    33. alert(length);
    34. }
    35. //1.获取按钮
    36. var forward = document.getElementById("forward");
    37. //2.绑定单机事件
    38. forward.onclick = function(){
    39. //前进
    40. // history.forward();
    41. history.go(1);
    42. }
    43. script>
    44. body>
    45. html>
    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>轮播图title>
    6. head>
    7. <body>
    8. <img id="img" src="img/banner_1.jpg" width="100%">
    9. <input type="button" id="back" value="后退">
    10. <script>
    11. /*
    12. 分析:
    13. 1.在页面上使用img标签展示图片
    14. 2.定义一个方法,修改图片对象的src属性
    15. 3.定义一个定时器,每隔3秒调用方法一次。
    16. */
    17. //修改图片src属性
    18. var number = 1;
    19. function fun(){
    20. number ++ ;
    21. //判断number是否大于3
    22. if(number > 3){
    23. number = 1;
    24. }
    25. //获取img对象
    26. var img = document.getElementById("img");
    27. img.src = "img/banner_"+number+".jpg";
    28. }
    29. //2.定义定时器
    30. setInterval(fun,3000);
    31. //1.获取按钮
    32. var back = document.getElementById("back");
    33. //2.绑定单机事件
    34. back.onclick = function(){
    35. //后退
    36. // history.back();
    37. history.go(-1);
    38. }
    39. script>
    40. body>
    41. html>

    3.DOM:

    3.1概念:

    Document Object Model 文档对象模型。
    将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作。

    3.2W3C DOM 标准被分为 3 个不同的部分:

    1.核心 DOM - 针对任何结构化文档的标准模型
    Document:文档对象
    Element:元素对象
    Attribute:属性对象
    Text:文本对象
    Comment:注释对象
    Node:节点对象,其他5个的父对象
    2.XML DOM - 针对 XML 文档的标准模型
    3.HTML DOM - 针对 HTML 文档的标准模型

    3.3核心DOM模型:

    Document:文档对象

    3.3.1创建(获取):

    在html dom模型中可以使用window对象来获取
    window.document
    document

    3.3.2方法:

    1. 获取Element对象:
    getElementById()    : 根据id属性值获取元素对象。id属性值一般唯一
    getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
    getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
    getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
    2. 创建其他DOM对象:
    createAttribute(name)
    createComment()
    createElement()
    createTextNode()

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Document对象title>
    6. head>
    7. <body>
    8. <div id="div1">div1div>
    9. <div id="div2">div2div>
    10. <div id="div3">div3div>
    11. <div class="cls1">div4div>
    12. <div class="cls1">div5div>
    13. <input type="text" name="username">
    14. <script>
    15. /*
    16. Document:文档对象
    17. 1. 创建(获取):在html dom模型中可以使用window对象来获取
    18. 1. window.document
    19. 2. document
    20. 2. 方法:
    21. 1. 获取Element对象:
    22. 1. getElementById() : 根据id属性值获取元素对象。id属性值一般唯一
    23. 2. getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
    24. 3. getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
    25. 4. getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
    26. 2. 创建其他DOM对象:
    27. createAttribute(name)
    28. createComment()
    29. createElement()
    30. createTextNode()
    31. 3. 属性
    32. */
    33. //2.根据元素名称获取元素对象们。返回值是一个数组
    34. var divs = document.getElementsByTagName("div");
    35. //alert(divs.length);
    36. //3.根据Class属性值获取元素对象们。返回值是一个数组
    37. var div_cls = document.getElementsByClassName("cls1");
    38. // alert(div_cls.length);
    39. //4.根据name属性值获取元素对象们。返回值是一个数组
    40. var ele_username = document.getElementsByName("username");
    41. //alert(ele_username.length);
    42. var table = document.createElement("table");
    43. alert(table);
    44. script>
    45. body>
    46. html>

    3.4Element:元素对象

    3.4.1获取/创建:

    通过document来获取和创建

    3.4.2方法:

    removeAttribute():删除属性
    setAttribute():设置属性

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Element对象title>
    6. head>
    7. <body>
    8. <a>点我试一试a>
    9. <input type="button" id="btn_set" value="设置属性">
    10. <input type="button" id="btn_remove" value="删除属性">
    11. <script>
    12. //获取btn
    13. var btn_set =document.getElementById("btn_set");
    14. btn_set.onclick = function(){
    15. //1.获取a标签
    16. var element_a = document.getElementsByTagName("a")[0];
    17. element_a.setAttribute("href","https://www.baidu.com");
    18. }
    19. //获取btn
    20. var btn_remove =document.getElementById("btn_remove");
    21. btn_remove.onclick = function(){
    22. //1.获取a标签
    23. var element_a = document.getElementsByTagName("a")[0];
    24. element_a.removeAttribute("href");
    25. }
    26. script>
    27. body>
    28. html>

    3.5Node:节点对象,其他5个的父对象

    3.5.1特点:

    所有dom对象都可以被认为是一个节点

    3.5.2方法:

    CRUD dom树:
    appendChild():向节点的子节点列表的结尾添加新的子节点。
    removeChild():删除(并返回)当前节点的指定子节点。
    replaceChild():用新节点替换一个子节点。

    3.5.3属性:

    parentNode 返回节点的父节点。

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Node对象title>
    6. <style>
    7. div{
    8. border: 1px solid red;
    9. }
    10. /*根据id选择器对div进行修饰*/
    11. #div1{
    12. width: 200px;
    13. height: 200px;
    14. }
    15. #div2{
    16. width: 100px;
    17. height: 100px;
    18. }
    19. #div3{
    20. width: 100px;
    21. height: 100px;
    22. }
    23. style>
    24. head>
    25. <body>
    26. <div id="div1">
    27. <div id="div2">bbbdiv>
    28. aaa
    29. div>
    30. <a href="javascript:void(0);" id="del">删除子节点a>
    31. <a href="javascript:void(0);" id="add">添加子节点a>
    32. <script>
    33. //1.获取超链接
    34. var element_a = document.getElementById("del");
    35. //2.绑定单击事件
    36. element_a.onclick = function(){
    37. var div1 = document.getElementById("div1");
    38. var div2 = document.getElementById("div2");
    39. div1.removeChild(div2);
    40. }
    41. //1.获取超链接
    42. var element_add = document.getElementById("add");
    43. //2.绑定单击事件
    44. element_add.onclick = function(){
    45. var div1 = document.getElementById("div1");
    46. //给div1添加子节点
    47. //创建div节点
    48. var div3 = document.createElement("div");
    49. div3.setAttribute("id","div3");
    50. div1.appendChild(div3);
    51. }
    52. /*
    53. 超链接功能:
    54. 1.可以被点击:样式
    55. 2.点击后跳转到href指定的url
    56. 需求:保留1功能,去掉2功能
    57. 实现:href="javascript:void(0);"
    58. */
    59. var div2 = document.getElementById("div2");
    60. var div1 = div2.parentNode;
    61. alert(div1);
    62. script>
    63. body>
    64. html>

    案例:动态表格

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>动态表格title>
    6. <style>
    7. table{
    8. border: 1px solid;
    9. margin: auto;
    10. width: 500px;
    11. }
    12. td,th{
    13. text-align: center;
    14. border: 1px solid;
    15. }
    16. div{
    17. text-align: center;
    18. margin: 50px;
    19. }
    20. style>
    21. head>
    22. <body>
    23. <div>
    24. <input type="text" id="id" placeholder="请输入编号">
    25. <input type="text" id="name" placeholder="请输入姓名">
    26. <input type="text" id="gender" placeholder="请输入性别">
    27. <input type="button" value="添加" id="btn_add">
    28. div>
    29. <table>
    30. <caption>学生信息表caption>
    31. <tr>
    32. <th>编号th>
    33. <th>姓名th>
    34. <th>性别th>
    35. <th>操作th>
    36. tr>
    37. <tr>
    38. <td>1td>
    39. <td>令狐冲td>
    40. <td>td>
    41. <td><a href="javascript:void(0);" onclick="delTr(this);">删除a>td>
    42. tr>
    43. <tr>
    44. <td>2td>
    45. <td>任我行td>
    46. <td>td>
    47. <td><a href="javascript:void(0);" onclick="delTr(this);">删除a>td>
    48. tr>
    49. <tr>
    50. <td>3td>
    51. <td>岳不群td>
    52. <td>?td>
    53. <td><a href="javascript:void(0);" onclick="delTr(this);" >删除a>td>
    54. tr>
    55. table>
    56. <script>
    57. /*
    58. 分析:
    59. 1.添加:
    60. 1. 给添加按钮绑定单击事件
    61. 2. 获取文本框的内容
    62. 3. 创建td,设置td的文本为文本框的内容。
    63. 4. 创建tr
    64. 5. 将td添加到tr中
    65. 6. 获取table,将tr添加到table中
    66. 2.删除:
    67. 1.确定点击的是哪一个超链接
    68. 2.怎么删除?
    69. removeChild():通过父节点删除子节点
    70. */
    71. //1.获取按钮
    72. /* document.getElementById("btn_add").onclick = function(){
    73. //2.获取文本框的内容
    74. var id = document.getElementById("id").value;
    75. var name = document.getElementById("name").value;
    76. var gender = document.getElementById("gender").value;
    77. //3.创建td,赋值td的标签体
    78. //id 的 td
    79. var td_id = document.createElement("td");
    80. var text_id = document.createTextNode(id);
    81. td_id.appendChild(text_id);
    82. //name 的 td
    83. var td_name = document.createElement("td");
    84. var text_name = document.createTextNode(name);
    85. td_name.appendChild(text_name);
    86. //gender 的 td
    87. var td_gender = document.createElement("td");
    88. var text_gender = document.createTextNode(gender);
    89. td_gender.appendChild(text_gender);
    90. //a标签的td
    91. var td_a = document.createElement("td");
    92. var ele_a = document.createElement("a");
    93. ele_a.setAttribute("href","javascript:void(0);");
    94. ele_a.setAttribute("onclick","delTr(this);");
    95. var text_a = document.createTextNode("删除");
    96. ele_a.appendChild(text_a);
    97. td_a.appendChild(ele_a);
    98. //4.创建tr
    99. var tr = document.createElement("tr");
    100. //5.添加td到tr中
    101. tr.appendChild(td_id);
    102. tr.appendChild(td_name);
    103. tr.appendChild(td_gender);
    104. tr.appendChild(td_a);
    105. //6.获取table
    106. var table = document.getElementsByTagName("table")[0];
    107. table.appendChild(tr);
    108. }*/
    109. //使用innerHTML添加
    110. document.getElementById("btn_add").onclick = function() {
    111. //2.获取文本框的内容
    112. var id = document.getElementById("id").value;
    113. var name = document.getElementById("name").value;
    114. var gender = document.getElementById("gender").value;
    115. //获取table
    116. var table = document.getElementsByTagName("table")[0];
    117. //追加一行
    118. table.innerHTML += "\n" +
    119. " "+id+"\n" +
    120. " "+name+"\n" +
    121. " "+gender+"\n" +
    122. " 删除\n" +
    123. " ";
    124. }
    125. //删除方法
    126. function delTr(obj){
    127. var table = obj.parentNode.parentNode.parentNode;
    128. var tr = obj.parentNode.parentNode;
    129. table.removeChild(tr);
    130. }
    131. script>
    132. body>
    133. html>

    4.HTML DOM

    4.1标签体的设置和获取:innerHTML

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>HTMLDOMtitle>
    6. head>
    7. <body>
    8. <div id="div1">
    9. div22
    10. div>
    11. <script >
    12. var div = document.getElementById("div1");
    13. var innerHTML = div.innerHTML;
    14. //alert(innerHTML);
    15. //div标签中替换一个文本输入框
    16. // div.innerHTML = "";
    17. //div标签中追加一个文本输入框
    18. div.innerHTML += "";
    19. script>
    20. body>
    21. html>

    4.2控制元素样式

    方式一:使用元素的style属性来设置
    方式二:提前定义好类选择器的样式,通过元素的className属性来设置其class属性值。

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>控制样式title>
    6. <style>
    7. .d1{
    8. border: 1px solid red;
    9. width: 100px;
    10. height: 100px;
    11. }
    12. .d2{
    13. border: 1px solid blue;
    14. width: 200px;
    15. height: 200px;
    16. }
    17. style>
    18. head>
    19. <body>
    20. <div id="div1">
    21. div1
    22. div>
    23. <div id="div2">
    24. div2
    25. div>
    26. <script>
    27. // 方式一:使用元素的style属性来设置
    28. var div1 = document.getElementById("div1");
    29. div1.onclick = function(){
    30. //修改样式方式1
    31. div1.style.border = "1px solid red";
    32. div1.style.width = "200px";
    33. //font-size--> fontSize
    34. div1.style.fontSize = "20px";
    35. }
    36. /*方式二:提前定义好类选择器的样式,通过元素的className属性来设置其class属性值。*/
    37. var div2 = document.getElementById("div2");
    38. div2.onclick = function(){
    39. div2.className = "d1";
    40. }
    41. script>
    42. body>
    43. html>

    5.事件监听机制:

    5.1概念:

    某些组件被执行了某些操作后,触发某些代码的执行。
    事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了
    事件源:组件。如: 按钮 文本输入框...
    监听器:代码。
    注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。

    5.2常见的事件:

    1. 点击事件:
    onclick:单击事件
    ondblclick:双击事件

    2. 焦点事件
    onblur:失去焦点
    onfocus:元素获得焦点。

    3. 加载事件:
    onload:一张页面或一幅图像完成加载。

    4. 鼠标事件:
    onmousedown    鼠标按钮被按下。
    onmouseup    鼠标按键被松开。
    onmousemove    鼠标被移动。
    onmouseover    鼠标移到某元素之上。
    onmouseout    鼠标从某元素移开。

    5. 键盘事件:
    onkeydown    某个键盘按键被按下。    
    onkeyup        某个键盘按键被松开。
    onkeypress    某个键盘按键被按下并松开。

    6. 选择和改变
    onchange    域的内容被改变。
    onselect    文本被选中。

    7. 表单事件:
    onsubmit    确认按钮被点击。
    onreset    重置按钮被点击。

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>常见事件title>
    6. <script>
    7. /*
    8. 常见的事件:
    9. 1. 点击事件:
    10. 1. onclick:单击事件
    11. 2. ondblclick:双击事件
    12. 2. 焦点事件
    13. 1. onblur:失去焦点。
    14. * 一般用于表单验证
    15. 2. onfocus:元素获得焦点。
    16. 3. 加载事件:
    17. 1. onload:一张页面或一幅图像完成加载。
    18. 4. 鼠标事件:
    19. 1. onmousedown 鼠标按钮被按下。
    20. * 定义方法时,定义一个形参,接受event对象。
    21. * event对象的button属性可以获取鼠标按钮键被点击了。
    22. 2. onmouseup 鼠标按键被松开。
    23. 3. onmousemove 鼠标被移动。
    24. 4. onmouseover 鼠标移到某元素之上。
    25. 5. onmouseout 鼠标从某元素移开。
    26. 5. 键盘事件:
    27. 1. onkeydown 某个键盘按键被按下。
    28. 2. onkeyup 某个键盘按键被松开。
    29. 3. onkeypress 某个键盘按键被按下并松开。
    30. 6. 选择和改变
    31. 1. onchange 域的内容被改变。
    32. 2. onselect 文本被选中。
    33. 7. 表单事件:
    34. 1. onsubmit 确认按钮被点击。
    35. * 可以阻止表单的提交
    36. * 方法返回false则表单被阻止提交。
    37. 2. onreset 重置按钮被点击。
    38. */
    39. //2.加载完成事件 onload
    40. window.onload = function(){
    41. /*//1.失去焦点事件
    42. document.getElementById("username").onblur = function(){
    43. alert("失去焦点了...");
    44. }*/
    45. /*//3.绑定鼠标移动到元素之上事件
    46. document.getElementById("username").onmouseover = function(){
    47. alert("鼠标来了....");
    48. }*/
    49. /* //3.绑定鼠标点击事件
    50. document.getElementById("username").onmousedown = function(event){
    51. // alert("鼠标点击了....");
    52. alert(event.button);
    53. }*/
    54. /* document.getElementById("username").onkeydown = function(event){
    55. // alert("鼠标点击了....");
    56. // alert(event.button);
    57. // 13为空格
    58. if(event.keyCode == 13){
    59. alert("提交表单");
    60. }
    61. }*/
    62. /* document.getElementById("username").onchange = function(event){
    63. alert("改变了...")
    64. }
    65. document.getElementById("city").onchange = function(event){
    66. alert("改变了...")
    67. }*/
    68. /*document.getElementById("form").onsubmit = function(){
    69. //校验用户名格式是否正确
    70. var flag = false;
    71. return flag;
    72. }*/
    73. }
    74. function checkForm(){
    75. return true;
    76. }
    77. script>
    78. head>
    79. <body>
    80. <form action="#" id="form" onclick="return checkForm();">
    81. <input name="username" id="username">
    82. <select id="city">
    83. <option>--请选择--option>
    84. <option>北京option>
    85. <option>上海option>
    86. <option>西安option>
    87. select>
    88. <input type="submit" value="提交">
    89. form>
    90. body>
    91. html>

  • 相关阅读:
    win下命名管道通信压力测试实现(含c++示例代码)
    NSSCTF CRYPTO 题解(四)
    第4章 向量、SIMD和GPU体系结构中的数据级并行
    JS模块化(node.js模块化和es6模块化)
    OCP安装定制文件准备
    【leetcode】排列的数目
    北京ib国际学校大盘点
    鲜花植物配送商城小程序的作用是什么
    IO流练习 二
    sock锁文件导致的MySQL启动失败
  • 原文地址:https://blog.csdn.net/weixin_65440201/article/details/126070860