JavaScript + HTML DOM (keep for myself)

1.改变 HTML 输出流

  JavaScript 能够创建动态的 HTML 内容

eg.

<script>
document.write(Date());
</script>

绝对不要在文档加载完成之后使用 document.write()。这会覆盖该文档。

2.改变 HTML 内容

如需改变 HTML 元素的内容,请使用这个语法:

document.getElementById(id).innerHTML=new HTML
3.改变 HTML 属性

如需改变 HTML 元素的属性,请使用这个语法:

document.getElementById(id).attribute=new value
4.改变 HTML 样式

如需改变 HTML 元素的样式,请使用这个语法:

document.getElementById(id).style.property=new style
 
5. HTML DOM 事件
在事件发生时执行 JavaScript

HTML 事件的例子:

  • 当用户点击鼠标时
  • 当网页已加载时
  • 当图像已加载时
  • 当鼠标移动到元素上时
  • 当输入字段被改变时
  • 当提交 HTML 表单时
  • 当用户触发按键时......
examples:
  (1)<button onclick="displayDate()">Try it</button>
  (2)onload 和 onunload 事件会在用户进入或离开页面时被触发。

  onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。

  onload 和 onunload 事件可用于处理 cookie。

 (3)onchange 事件

       <input type="text" id="fname" onchange="upperCase()">

   (4)onmouseover 和 onmouseout 事件

  onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。

   (5)onmousedown、onmouseup 以及 onclick 事件

  onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分.

6.  应该重点掌握的!!!(EventListener)
说明:

(1)addEventListener() 方法用于向指定元素添加事件句柄。

(2)可以向一个元素添加多个事件句柄,且添加的事件句柄不会覆盖已存在的事件句柄

(3)可以向同一个元素添加多个同类型的事件句柄,如:两个 "click" 事件,顺序执行

(4)可以向任何 DOM 对象添加事件监听,不仅仅是 HTML 元素。如: window 对象。

(5)addEventListener() 方法可以更简单的控制事件(冒泡与捕获)。

(6)通过使用 addEventListener() 方法, JavaScript 从 HTML 标记中分离开来,可读性更强。尤其在没有控制HTML标记时,也可以添加事件监听。

(7)使用 removeEventListener() 方法来移除事件的监听。

语法

element.addEventListener(event, function, useCapture);

第一个参数是事件的类型 (如 "click" 或 "mousedown").

第二个参数是事件触发后调用的函数。

第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的。

example:

<button id="myBtn">点我</button>

<script>
document.getElementById("myBtn").addEventListener("click", myFunction);

function myFunction() {
alert ("Hello World!");
}
</script>

还可为window对象添加事件监听
如:
window.addEventListener("resize", function(){
    document.getElementById("demo").innerHTML = sometext;
});

传递参数:

方法:当传递参数值时,使用"匿名函数"调用带参数的函数。

document.getElementById("myBtn").addEventListener("click", function() {
myFunction(p1, p2);
})

选择事件冒泡还是事件捕获?

  冒泡:事件触发与执行为由内到外;

  捕获:事件触发与执行为由外到内。

useCapture默认为false(冒泡),true为捕获。

removeEventListener() 方法:

  removeEventListener() 方法移除由 addEventListener() 方法添加的事件句柄

posted on 2015-04-19 20:53  -赶鸭子上架-  阅读(204)  评论(0编辑  收藏  举报