JavaScript(二)

版权声明:sj专属 https://blog.csdn.net/qq_40933428/article/details/86428538

 

1 JS事件

         JS可以响应页面元素的各种事件。

        

页面元素的事件

[1]单击事件  onclick

已经使用过的事件

Tips:几乎所有的元素都可以有onclick事件(body除外)。

在调用函数的位置可以直接编写JS代码。

[2]双击事件 ondblclick

[3]得到焦点 onfocus

[4]失去焦点   onblur

[5]修改响应事件 onchange   用户改变域(表单域)的内容

Tips:onchange事件往往使用来响应select的修改事件。

[6]鼠标悬浮事件  onmouseover

[7]鼠标离开事件 onmouseout

[8]鼠标移动事件 onmousemove

这个案例中使用到了一个参数event

Event参数表示事件源对象。所有事件都有事件源对象,根据事件不同,event的表示也不同。所有的鼠标响应事件都可以通过事件源获取鼠标的位置。

 

事件源对象的传递方式:传递一个event即可。

[9] 鼠标按下的事件 onmousedown

可以通过evetn.button获取鼠标按键的索引。

[10] 鼠标松开的事件 onmouseup

[11]键盘事件  onkeydown/onkeyup/onkeypress

键盘按下的事件:

[12] 加载完成事件 onload

[13]表单提交事件 onsubmit

点击提交按钮之后调用指定的函数。

Onsubmit如果返回true表达可以正常提交,如果返回false阻止表单提交。

往往用于表单数据验证。

表单正常提交:

阻止表单提交

数据校验

[14]其他事件:

onreset  重置按钮被点击 1 3 4

onresize  窗口或框架被调整尺寸 1 4 4

onselect  文本被选定

onabort 图像加载被中断

 

 

2 DOM

2.1 DOM的基本概念

JavaScript HTML DOM 对象.

HTML DOM 是 W3C 标准(是 HTML 文档对象模型的英文缩写,Document Object Model for HTML)。

HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标准方法。

通过 DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。

HTML DOM 独立于平台和编程语言。它可被任何编程语言诸如 Java、JavaScript 和 VBScript 使用。

         HTML页面中存在各种元素。通过标签编写在HTML页面的硬代码。比如:<div></div>。可以理解为看见的实在事物。javaScritp中为每一个HTML页面的元素都申明了一个对应的对象与之对应。而这些对象就称之为DOM对象。

例如:

页面中有一个<div></div>  在JS中就存储在一个 DIVElement对象与页面中的div对应。通过使用js修改DIVElement对象的属性和样式就可以修改页面元素DIV的样式和属性。

案例:

2.2HTMLDOM结构

2.3获取DOM对象的API

获取DOM对象的API都是document对象的方法。Document对象是window对象的属性,所以理论上应该是window.docuemnt.xxxx。但是window可以省略不写,所以一般都是直接使用document.xxxx获取对象。

[1] 根据ID获取一个元素对象

方法:document.getElementById(id);

通过ID获取页面的一个指定的元素对象,前面的案例已经使用过多次,在这里不再赘述。

 

例外情况:

  • 元素不存在

  • 在多个相同的ID

[2]根据name返回多个元素集合

方法: document.getElementsByName(name);

网页中元素的ID理论上不能重复,而name是可以重复的。比如表单中的单选按钮组(性别)。

[3]通过标签名返回一组元素

方法:document.getElementsByTagName(tagname)

案例:

[4]通过类名获取一组元素

方法:document.getElementsByClassName(className);

2.4DOM修改页面元素的属性

赋值语法: domElement.attName=value;

获取值的语法:var value = domElement.attName;

案例:

获取输入框的value属性的值和设置值

全选:

2.5DOM操作元素的CSS样式

设置样式属性:domElement.style.attrName=value;

获取样式属性:var value = domElement.style.attrName;

案例1:改变页面元素的大小

案例2:修改背景颜色

如果样式属性存在多个单词,在CSS中使用“-”连接,在DOM中除过第一个单词全部小写外,其余单词的首字母要大写。

2.6DOM操作页面元素的内容

S1:DOM操作页面元素的内容实际上就是通过属性

innerHTML和innerText 这个两个属性在页面的标签中是没有的。只有dom对象有。

innerHMLT指的是页面元素开始标签和结束标签之间的内容。

案例:

innerHTML和innerText区别

innerHTML设置的内容会解释运行html标签,而innerText只会当做文本放入

S2:动态生成一个元素并且加入到页面中

 创建对象:document.createEelement(“a”);

 添加元素:applendChild(e);

2.7DOM操作元素的事件

可以给元素动态添加事件。

domElement.evetnName=function(){xxxxx};

 

2.8练习

案例1: 动态的向页面表格中添加数据。删除表中的数据。

实现:

<!DOCTYPE html>

<html>

<head>

         <title>动态操作表格</title>

         <meta charset="utf-8">

         <style type="text/css">

                   table{

                            margin-left: auto;

                            margin-right: auto;

                            width: 600px;

                            border:1px solid;

                   }

                   td{border: 1px solid #fff;}

         </style>

         <script type="text/javascript">

         var index = 1;

         function addRow(){

                   //生产一个tr

                   var tr = document.createElement("tr");

                   //设置样式

                   tr.style.borderWidth="0px";

                   var color = "";

                   if(index % 2 == 1){

                            tr.style.backgroundColor="pink";

                            color = "pink";

                   }else{

                            tr.style.backgroundColor="#eee";

                            color = "#eee";

                   }

                   index ++ ;

                   //给tr添加事件

                   tr.onmouseover=function(){

                            tr.style.backgroundColor="#419B1C";

                   }

                   tr.onmouseout=function(){

                            tr.style.backgroundColor=color;

                   }

                   tr.id=index+"tr"

                   //生成5个td并且加入到tr中

                   var tds = "<td>1</td><td>张三</td><td>28</td><td>男</td><td><a href='javascript:deleteTr(\""+index+"tr\")'>删除</a></td>";

                   tr.innerHTML=tds;

                   //将tr加入表格

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

                   table.appendChild(tr);

         }

         /*删除tr的函数*/

         function deleteTr(tr){

                   /*通过ID删除元素*/

                   document.getElementById(tr).remove();

         }

         </script>

</head>

<body>

<input onclick="addRow()" type="button" value="添加"/>

         <table cellspacing="0" cellpadding="0"  id="table">

                   <tr style="background-color: #ccc">

                            <th>编号</th>

                            <th>姓名</th>

                            <th>年龄</th>

                            <th>性别</th>

                            <th>操作</th>

                   </tr>

         </table>

        

</body>

</html>

 

案例:折叠菜单

<!DOCTYPE html>

<html>

<head>

         <title>折叠菜单</title>

         <meta charset="utf-8"/>

         <style type="text/css">

                   p{width: 180px; background-color: #eee; border:1px solid;}

                   .menu{

                            cursor: pointer;

                            margin-top:5px;

                   }

                   .mainMenu{

                            width: 180px;

                            background: #ccc;

                            height: 20px;

                   }

                   .subMenu{

                            display: none;

                   }

         </style>

         <script type="text/javascript">

         //是否显示菜单

         function isShowMenu(subId){

                   //获取子菜单元素

                   var subMenu = document.getElementById(subId);

                   //判断是否是子菜单的状态

                   //获取子菜单的display属性值

                   var v = subMenu.style.display;

                   if(v != "block"){

                            subMenu.style.display="block";

                   }else{

                            subMenu.style.display="none";

                   }

                   console.log(v);

         }

         </script>

</head>

<body>

         <p>

                   <div onclick="isShowMenu('umenu')" class="mainMenu menu">用户管理</div>

                   <div id="umenu" class="subMenu">

                            <ul>

                                     <li>添加用户</li>

                                     <li>查询用户</li>

                            </ul>

                   </div>

                   <div onclick="isShowMenu('pmenu')" class="mainMenu menu">商品管理</div>

                   <div id="pmenu" class="subMenu">

                            <ul>

                                     <li>添加商品</li>

                                     <li>查询商品</li>

                            </ul>

                   </div>

                   <div  onclick="isShowMenu('omenu')" class="mainMenu menu">订单管理</div>

                   <div id="omenu" class="subMenu">

                            <ul>

                                     <li>添加订单</li>

                                     <li>查询订单</li>

                            </ul>

                   </div>

         </p>

</body>

</html>

 

猜你喜欢

转载自blog.csdn.net/qq_40933428/article/details/86428538