跟我学JavaScript--HTML DOM--DOM事件,导航

DOM事件

常见的HTML事件:

  • 当用户点击鼠标时
  • 当网页已加载时
  • 当图片已加载时
  • 当鼠标移动到元素上时
  • 当输入字段被改变时
  • 当HTML表单被提交时
  • 当用户触发按键时

onclick事件

用户点击鼠标时触发onclick事件

例.

<h1 onclick="changetext(this)">点击文本!</h1>
<script>
    function changetext(id){
        id.innerHTML="Ooops!";
        /*id.firstChild.nodeValue="Ooops!";*/
}
</script>

等效于

<h1 onclick="changetext()" id="demo">点击文本!</h1>
<script>
   function changetext(){
      document.getElementById("demo").innerHTML="Ooops!";
} 
</script>

onload事件和onunload事件

  • 用户进入页面时触发onload事件
  • 用户离开页面时触发onunload事件

例.
onload和onunload事件可用于处理cookies

<body onload="checkCookies()">

<script>
function checkCookies()
{
    if (navigator.cookieEnabled==true)
    {
        alert("Cookie 可用")
    }
    else
    {
        alert("Cookie 不可用")
    }
}
</script>
</body>

运行结果:
这里写图片描述

页面载入时,弹出浏览器 Cookie 可用状态。

onchange事件

onchange事件常用于输入字段的验证

例.

<body>
<script>
function myFunction(){
    var x=document.getElementById("fname");
    x.value=x.value.toUpperCase();
}
</script>
输入你的名字: <input type="text" id="fname" onchange="myFunction()">
</body>

当光标离开输入框后,函数将被触发,将小写字母转为大写字母。

onmouseover事件和onmouseout事件

  • 鼠标指针移动到元素上时触发onmouseover事件
  • 鼠标指针离开元素时触发onmouseout事件

例.

<div onmouseover="mOver()" id="p" onmouseout="mOut(this)" style="background-color:#D94A38;width:120px;height:20px;padding:40px">Mouse Over Me</div>

<script>
function mOver()
{
    document.getElementById("p").innerHTML="Thank You";
}

function mOut(obj)
{
    obj.innerHTML="Hello Nico";
}
</script>

运行结果:

未进行任何操作时:

将鼠标指针移动到元素上时,触发onmouseover事件:
这里写图片描述

鼠标指针离开元素时,触发onmouseout事件:
这里写图片描述

onmousedown事件,onmouseup事件和onclick事件

这三个事件是鼠标点击的全部过程:

  1. 鼠标按钮被点击时,触发onmousedown事件
  2. 鼠标按钮被松开时,触发onmouseup事件
  3. 鼠标点击完成时,触发onclick事件

例.

<div onmousedown="mDown(this)" onmouseup="mUp(this)" style="background-color:#D94A38;width:90px;height:20px;padding:40px;">Click Me</div>

<script>
function mDown(obj)
{
    obj.style.backgroundColor="#1ec5e5";
    obj.innerHTML="Release Me"
}

function mUp(obj)
{
    obj.style.backgroundColor="#D94A38";
    obj.innerHTML="Thank You"
}
</script>

运行结果:

未进行任何操作时:
这里写图片描述

鼠标按钮被点击时,触发onmousedown事件:
这里写图片描述

鼠标按钮被松开时,触发onmouseup事件:
这里写图片描述

使用HTML DOM分配事件

例.
为button元素分配onclick事件:

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

<script>
document.getElementById("myBtn").onclick=function(){
   displayDate();
};
function displayDate()
{
  document.getElementById("demo").innerHTML=Date();
}
</script>

<p id="demo"></p>

displayDate()函数被分配给了 id=myButn” 的 HTML 元素的onclick事件。

当按钮被点击时,触发onclick事件,执行函数。

DOM导航

通过HTML DOM使用节点关系在节点树中导航

DOM节点列表

getElementsByTagName()方法返回节点列表。节点列表就是一个节点数组

例.

<p>Hello World!</p>
<p>DOM 是非常有用的!</p>

<script>
x=document.getElementsByTagName("p");
document.write("第二个段落的 innerHTML 内容为: " + x[1].innerHTML);
</script>

运行结果:
这里写图片描述

DOM节点列表长度

length属性定义节点列表中节点的数量,即节点数组的长度

例.
使用length属性循环节点列表:

<p>Hello World!</p>
<p>DOM 是非常有用的!</p>
<p>这个实例演示了 <b>length</b> 属性。</p>

<script>
x=document.getElementsByTagName("p");   //获取所有<p>元素节点
for (i=0;i<x.length;i++)
{ 
    document.write(x[i].innerHTML+"<br>");  //输出每个<p>元素节点的文本节点的值
}
</script>

运行结果:
这里写图片描述

导航节点关系

通过parentNode,firstChild和lastChild这三个节点属性在文档结构中进行导航

例.
firstChild/lastChild属性可用于访问元素的文本:

<p id="intro">Hello World!</p>

<script>
x=document.getElementById("intro");
document.write(x.firstChild.nodeValue+"<br>");
document.write(x.lastChild.nodeValue);
</script>

运行结果:
这里写图片描述

DOM根节点

有两个特殊的属性,可以访问全部文档:

  • document.documentElement - 全部文档
  • document.body - 文档的主体

childNodes和nodeValue

获取元素内容的方式:

  • innerHTML属性
  • childNodes属性和 nodeValue属性

例.

<p id="intro">Hello World!</p>

<script>
txt=document.getElementById("intro").childNodes[0].nodeValue;
document.write(txt);
</script>

运行结果:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值