HTML DOM

HTML DOM 定义了访问和操作 HTML 文档的标准。

 1.HTML DOM 节点

下图为HTML DOM 节点树:

DOM HTML tree

 2.HTML DOM 方法

常用的dom对象方法:

方法描述
getElementById()返回带有指定 ID 的元素。
getElementsByTagName()返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。
getElementsByClassName()返回包含带有指定类名的所有元素的节点列表。
appendChild()把新的子节点添加到指定节点。
removeChild()删除子节点。
replaceChild()替换子节点。
insertBefore()在指定的子节点前面插入新的子节点。
createAttribute()创建属性节点。
createElement()创建元素节点。
createTextNode()创建文本节点。
getAttribute()返回指定的属性值。
setAttribute()把指定属性设置或修改为指定的值。

eg:

     // 动态创建
        dynamicCreated: function(val) {
          var div = document.getElementById(this.yy);
          div.innerHTML="";
          if (val.length != 0) {
            // 获取div
            for (let i = 0; i < val.length; i++) {
              var img = document.createElement("img");
              var div1=document.createElement("div");
              img.src =
                "http://XXXX" +
                val[i].emp_no +
                "XXXXX";
              img.style.marginLeft = "10px";
              img.style.height = "130px";
              img.style.width = "100px";
 
              let no = val[i].emp_no;
              let name = val[i].emp_name;
              var p=document.createElement("p");
              var p1=document.createElement("p");
              p.width="130px";
              p1.width="130px";
              p.slot="title";
              p1.slot="title";
              p.innerHTML="工號:"+no;
              p1.innerHTML="姓名:"+name;
              p.style.textAlign="center";
              p1.style.textAlign="center";
              div1.style.width="130px";
              div1.appendChild(img);
              div1.appendChild(p);
              div1.appendChild(p1);
              div1.style.display="inline-block";
              div.appendChild(div1);
            }  
           } else {
              var text = document.createElement("text");
              text.innerHTML = "<strong>暫無數據</strong";
              text.style.fontSize="14px";
              div.appendChild(text);
            }               
        },     

3.HTML DOM 属性

innerHTML属性:

获取元素内容的最简单方法是使用 innerHTML 属性。

innerHTML 属性对于获取或替换 HTML 元素的内容很有用。

eg:

var txt=document.getElementById("intro").innerHTML;
document.write(txt);

nodeName 属性规定节点的名称。

  • nodeName 是只读的
  • 元素节点的 nodeName 与标签名相同
  • 属性节点的 nodeName 与属性名相同
  • 文本节点的 nodeName 始终是 #text
  • 文档节点的 nodeName 始终是 #document

注意: nodeName 始终包含 HTML 元素的大写字母标签名。

nodeValue 属性规定节点的值。

  • 元素节点的 nodeValue 是 undefined 或 null
  • 文本节点的 nodeValue 是文本本身
  • 属性节点的 nodeValue 是属性值

eg:

x=document.getElementById("intro");
document.write(x.firstChild.nodeValue);

nodeType 属性返回节点的类型。nodeType 是只读的。

比较重要的节点类型有:

元素类型NodeType
元素1
属性2
文本3
注释8
文档9

4.方法和属性的区别

1.HTML DOM 方法是我们可以在节点(HTML 元素)上执行的动作。

2.HTML DOM 属性是我们可以在节点(HTML 元素)设置和修改的值。

5.HTML DOM 访问

  • 通过使用 getElementById() 方法
  • 通过使用 getElementsByTagName() 方法
  • 通过使用 getElementsByClassName() 方法

6.HTML DOM - 修改

  • 改变 HTML 内容
  • 改变 CSS 样式
  • 改变 HTML 属性
  • 创建新的 HTML 元素
  • 删除已有的 HTML 元素
  • 改变事件(处理程序)
document.getElementById("p1").innerHTML="新文本!";

document.getElementById("p2").style.color="blue";

document.getElementById("p2").style.fontFamily="Arial";

document.getElementById("p2").style.fontSize="larger";

var para=document.createElement("p");
var node=document.createTextNode("这是一个新段落。");
para.appendChild(node);

//使用事件,HTML DOM 允许您在事件发生时执行代码。当 HTML 元素"有事情发生"时,
//浏览器就会生成事件:在元素上点击,加载页面,改变输入字段等
<input type="button"
onclick="document.body.style.backgroundColor='lavender';"
value="修改背景颜色">

如需替换 HTML DOM 中的元素,请使用 replaceChild() 方法:

如需删除HTML DOM 中的元素,removeChild()方法;

如需插入HTML DOM 中的元素并插入到前面,您可以使用 insertBefore() 方法:

eg:

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>

<script>
var para=document.createElement("p");
var node=document.createTextNode("这是一个新段落。");
para.appendChild(node);

var element=document.getElementById("div1");
var child=document.getElementById("p1");
element.insertBefore(para,child);
</script>

运行结果:

这是一个新段落。

这是一个段落。

这是另外一个段落。

7.HTML DOM - 事件

eg:

  • 当用户点击鼠标时
  • 当网页已加载时
  • 当图片已加载时
  • 当鼠标移动到元素上时
  • 当输入字段被改变时
  • 当 HTML 表单被提交时
  • 当用户触发按键时
<h1 onclick="this.innerHTML='Ooops!'">点击文本!</h1>

<button onclick="displayDate()">点我</button>

<body onload="checkCookies()">

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


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

使用 HTML DOM 来分配事件:

document.getElementById("myBtn").onclick=function(){displayDate()};

8.HTML DOM 导航

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

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

可以使用 length 属性来循环节点列表:

x=document.getElementsByTagName("p");
for (i=0;i<x.length;i++)
{ 
    document.write(x[i].innerHTML);
    document.write("<br>");
}

能够使用三个节点属性:parentNode、firstChild 以及 lastChild ,在文档结构中进行导航。

document.documentElement - 全部文档

document.body - 文档的主体

除了 innerHTML 属性,也可以使用 childNodes 和 nodeValue 属性来获取元素的内容。

txt=document.getElementById("intr1").childNodes[0].nodeValue;
document.write(txt);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值