四.HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应。
1.对事件做出反应
我们可以在事件发生时执行 JavaScript,比如当用户在 HTML 元素上点击时。
例1.当用户在 <h1> 元素上点击时,会改变其内容:
<h1 onclick="this.innerHTML='谢谢!'"
>请点击该文本</h1>
<!DOCTYPE html>
<html>
<head>
<script>
function changetext(id)
{
id.innerHTML="谢谢!";
}
</script>
</head>
<body>
<h1 onclick="changetext(this)"
>请点击该文本</h1>
</body>
</html>
2.HTML 事件属性
如需向 HTML 元素分配 事件,您可以使用事件属性。
例1:向 button 元素分配 onclick 事件:
<!DOCTYPE html>
<html>
<body>
<p>点击按钮就可以执行 <em>displayDate()</em> 函数。</p>
<button οnclick="displayDate()">点击这里</button>
<script>
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
<p id="demo"></p>
</body>
</html>
3.使用 HTML DOM 来分配事件
例1:HTML DOM 允许您通过使用 JavaScript 来向 HTML 元素分配事件:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>点击按钮就可以执行 <em>displayDate()</em> 函数。</p>
<button id="myBtn">点击这里</button>
<script>
document.getElementById("myBtn").οnclick=function(){displayDate()};
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
<p id="demo"></p>
</body>
</html>
在上面的例子中,名为 displayDate 的函数被分配给 id=myButn" 的 HTML 元素。
例2:onload 和 onunload 事件
onload 和 onunload 事件会在用户进入或离开页面时被触发。
onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。
onload 和 onunload 事件可用于处理 cookie。
<!DOCTYPE html>
<html>
<body οnlοad="checkCookies()">
<script>
function checkCookies()
{
if (navigator.cookieEnabled==true)
{
alert("已启用 cookie")
}
else
{
alert("未启用 cookie")
}
}
</script>
<p>提示框会告诉你,浏览器是否已启用 cookie。</p>
</body>
</html>
例3:onchange 事件
onchange 事件常结合对输入字段的验证来使用。
下面是一个如何使用 onchange 的例子。当用户改变输入字段的内容时,会调用 upperCase() 函数。
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction()
{
var x=document.getElementById("fname");
x.value=x.value.toUpperCase();
}
</script>
</head>
<body>
请输入英文字符:<input type="text" id="fname" οnchange="myFunction()">
<p>当您离开输入字段时,会触发将输入文本转换为大写的函数。</p>
</body>
</html>
五:添加和删除节点(HTML 元素)
1.创建新的 HTML 元素
如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素。
<div id="div1">
<p id="p1">这是一个段落</p>
<p id="p2">这是另一个段落</p>
</div>
<script>
var para=document.createElement("p"); //这段代码创建新的 <p> 元素:
//如需向 <p> 元素添加文本,您必须首先创建文本节点。这段代码创建了一个文本节点: var node=document.createTextNode("这是新段落。"); para.appendChild(node); //然后您必须向 <p> 元素追加这个文本节点: var element=document.getElementById("div1");//这段代码找到一个已有的元素: element.appendChild(para);//最后您必须向一个已有的元素追加这个新元素。 </script>
如需删除 HTML 元素,您必须首先获得该元素的父元素:
<div id="div1"> <p id="p1">这是一个段落。</p> <p id="p2">这是另一个段落。</p> </div> <script> var parent=document.getElementById("div1"); var child=document.getElementById("p1"); parent.removeChild(child); </script>
提示:如果能够在不引用父元素的情况下删除某个元素,就太好了。
不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。
这是常用的解决方案:找到您希望删除的子元素,然后使用其 parentNode 属性来找到父元素:
var child=document.getElementById("p1"); child.parentNode.removeChild(child);
参考:http://www.w3school.com.cn/js/js_htmldom.asp
http://www.w3school.com.cn/htmldom/index.asp