(3)document对象续
来源:互联网 发布:出售淘宝店 编辑:程序博客网 时间:2024/05/12 14:49
(1.4)事件冒泡
假设元素a嵌套在元素b中,a被点击了不仅a的onclick事件会被触发,b的onclick事件也会被触发,执行顺序是由内而外执行。
(1.5)事件中的this关键字
例子:
</pre><pre name="code" class="csharp"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>事件冒泡与事件中的this关键字</title> <script type="text/javascript"> //事件冒泡指的的:假设a元素嵌套在b元素中,那么a被点击触发a的onclick事件也触发b的onclick事件,触发顺序a->b。 //this指的是当前对象。函数中的this指的是当前函数对象,标签中的this指的是当前标签对象。 //可以通过this传递来获取引发事件触发的控件 //也可以通过event.srcElement来获取事件源控件 //-------------------------------------------------------------------------------------------------- //onclick="btnClick1()"是普通函数调用。这里表示onclick的处理函数是匿名函数fuction(){btnClick1();};函数的实现是调用外部window.btnClick1();匿名函数的是btn1的函数,btnClick1()是window的函数,this表示一种从属关系,函数与对象的关系。看破现象,直击本质。 function btnClick1() { alert(this); } //btn2通过this传递btn2对象进来 function btnClick2(btn) { alert(btn.value); } //btn3.value 通过this.value传递进来 function btnClick3(value) { alert(value); } //使用event.srcElement来获取事件源元素 function btnClick4() { alert(event.srcElement.value); } //动态给btn5.onclick的绑定处理函数btn5click function btn5Event() { var btn = document.getElementById("btn5"); btn.onclick = btn5click; } //使用this关键字,this指向btn5,原因相当于在btn5onclick事件直接写(绑定函数),而不是调用函数。 //调用函数的话 相当于 function btn5click() { alert(this.value); } </script></head><body onload="btn5Event()"><input type="button" value="btn1" onclick="btnClick1()"/><input type="button" value="btn2" onclick="btnClick2(this)"/><input type="button" value="btn3" onclick="btnClick3(this.value)"/><input type="button" value="btn4" onclick="btnClick4()"/><input type="button" value="btn5" id="btn5" /></body></html>(1.6)Dom修改样式
</pre><pre name="code" class="html"> <html xmlns="http://www.w3.org/1999/xhtml"><head> <title>修改样式(js与css中样式属性名描述不一样)</title> <script type="text/javascript"> //修改元素的样式是设置className属性 //css与js样式名称的不一致:注意css中属性名在js中操作的可能不一样。注意在那线属性名中函数-的属性。如background-color在js中是style.background。元素样式名是class在js中是className。font-size->style.fontSize;margin-top->marginTop //单独修改样式的属性使用style.属性名。 //选择器前面html中已有描述,这么不再描述。 function setbgcolor() { //样式名字要双引号.... document.getElementById("divTest").className = "night"; } </script> <style type="text/css"> .day { background-color:Green; } .night { background-color:White; } </style></head><body><div id="divTest" class="day">测试</div><input type="button" onclick="setbgcolor()"/><!-- 单独修改制定属性的样式 注意js和css的区别--><input type="button" onclick="this.style.background='Green';" /></body></html>用途:视频网上的开关灯效果。(body背景颜色的设置。)
示例一:给txt设置颜色
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title>修改样式练习1,给txt设置颜色</title> <script type="text/javascript"> function AddEvent() { //元素数组 动态给txt添加事件 var txts = document.getElementsByTagName("input"); for (var i = 0; i < txts.length; i++) { var txt = txts[i]; //这里可以使用this,相当于在标签中写事件。 txt.onblur = onblurSetColor; } } function onblurSetColor() { //天啊 注意length别拼错,浪费生命 //判断txt的值是否长度<=0来判断是否为空 if (this.value.length <= 0) { this.style.background = "red"; } else { this.style.background = "green"; } } </script></head><body onload="AddEvent();"> <input type="text" /> <input type="text" /> <input type="text" /></body></html>示例二:评分控件
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title>设置评分控件</title> <script type="text/javascript"> //给td添加监听事件 function setEvent() { var tds = document.getElementsByTagName("td"); for (var i = 0; i < tds.length; i++) { var td = tds[i]; //设定元素上面的鼠标显示图标 td.style.cursor = "pointer"; td.onclick = tdonclick; td.style.background = "Aqua" } } function tdonclick() { //js没有indexof方法。jQuery有,这里要在自个写。 var tds = document.getElementsByTagName("td"); var thisindex = indexOf(tds, this); for (var i = 0; i <= thisindex; i++) { tds[i].style.color = "red"; } for (var j = thisindex + 1; j < tds.length; j++) { tds[j].style.color = "white"; } } //自定义取得td的index方法 function indexOf(arr, element) { for (var i = 0; i < arr.length; i++) { if (arr[i] == element) { return i; } } } </script></head><body onload="setEvent()"> <table> <tbody><tr><td >☆</td><td>☆</td><td>☆</td><td>☆</td><td>☆</td></tr></tbody> </table></body></html>
示例三:表格隔行变色,通常用来设置表格的显示样式
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title>表格隔行变色1(载入完成,设置默认颜色)</title> <script type="text/javascript"> //表格经常使用 function setColor() { var trs = document.getElementsByTagName("tr"); for (var i = 0; i < trs.length; i++) { if (i % 2 == 0) { var tr = trs[i]; tr.style.background = "Yellow"; } } } </script></head><body onload="setColor();"> <table> <tbody><tr><td>吞噬星空</td></tr><tr><td>天魔神谭</td></tr><tr><td>西游记</td></tr><tr><td>大话</td></tr><tr><td>宝莲灯</td></tr><tr><td>哪吒闹海</td></tr></tbody> </table></body></html>示例四:表格行被点击则表色,可以用来设置行被点击的时候事件
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title>表格颜色设置2(被点击的行尾黄色,其他为白色)</title> <script type="text/javascript"> //应用:可以选择当前行触发事件,比如弹出一个文本框显示tr的信息。 //思路: //(1)给每个行增加监听事件,通过组元素来动态添加事件 //(2)编写写事件的绑定处理函数 function initEvent() { var trs = document.getElementsByTagName("tr"); for (var i = 0; i < trs.length; i++) { var tr = trs[i]; tr.onclick = trOnClick; //鼠标光标标签 tr.style.cursor = "pointer"; } } function trOnClick() { var trs = document.getElementsByTagName("tr"); for (var i = 0; i < trs.length; i++) { var tr = trs[i]; this.style.background = "Yellow"; if (tr != this) { tr.style.background = "White"; } } } </script></head><body onload="initEvent();"> <table> <tbody><tr><td>吞噬星空</td></tr><tr><td>天魔神谭</td></tr><tr><td>西游记</td></tr><tr><td>大话</td></tr><tr><td>宝莲灯</td></tr><tr><td>哪吒闹海</td></tr></tbody> </table></body></html>示例五:获取焦点的文本框颜色设置
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title>获取焦点的文本框颜色为黄色,其他为白色</title> <script type="text/javascript"> function initEvent() { var txts = document.getElementsByName("txt"); for (var i = 0; i < txts.length; i++) { var txt = txts[i]; txt.onfocus = txtSetColor; } //方式二,可以bytag方式来取元素,再判断type,不过还是推荐用byname } function txtSetColor() { var txts = document.getElementsByName("txt"); this.style.background = "Yellow"; for (var i = 0; i < txts.length; i++) { if (txts[i] != this) { txts[i].style.background = "White"; } } } </script></head><body onload="initEvent();"> <input type="text" name="txt" /> <br /> <input type="text" name="txt" /> <br /> <input type="text" name="txt" /> <br /> <input type="text" name="txt" /> <br /> <input type="text" name="txt" /></body></html>示例六:改变超链接的背景颜色和阻止点击超链接的默认事件
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title>改变超链接的背景颜色</title> <script type="text/javascript"> //目的:点击一个超链接,被点击的超链接变为红色背景,其他超链接的背景还原为白色 //动态给a标签添加点击事件 function initEvent() { var links = document.getElementsByTagName("a"); for (var i = 0; i < links.length; i++) { //绑定事件 links[i].onclick = onclick; } } //自定义点击事件,注意event.returnValue:是否取消的事件元素的默认动作(如表单提交,页面跳转)这里超链接指的是页面跳转,默认值是true,我们设置为false,他就不会执行默认页面跳转行为。 function onclick() { this.style.background = "red"; //阻止跳转到超链接指定的地址。 window.event.returnValue = false; var links = document.getElementsByTagName("a"); for (var i = 0; i < links.length; i++) { if (links[i] != this) { links[i].style.background = "white"; } } } </script></head><body onload="initEvent()"> <a href="http://www.baidu.com">百度</a> <br /> <a href="http://www.sina.com">新浪</a> <br /> <a href="http://www.qq.com">腾讯</a> <br /> <a href="http://www.tudou.com">土豆</a></body></html>
0 0
- (3)document对象续
- javascript document对象(四)
- (2)document对象和body对象
- HTML DOM Event 对象(Document 对象)
- document 对象
- document对象
- document对象
- document 对象
- document对象
- document 对象
- document对象
- document对象
- Document对象
- document对象
- Document 对象
- document对象
- Document对象
- document对象
- 【九度OJ】1031【模拟】【C实现】【浙大2009】
- android 单元测试
- 运维人员--------经常备份
- BZOJ 3282 Tree Link-Cut-Tree 动态树
- sleep与wait的区别
- (3)document对象续
- nginx学习六 高级数据结构之双向链表ngx_queue_t
- mysql中时间字段的查询、应用
- 循环控制
- 静态网页VS动态网页
- 非递归的输出1-N的全排列
- 安卓手势监听
- java之Comparator与Comparable
- 知识扩展----404错误页面那些事