Day-24 DOM Node

DOM节点的建立

建立新元素

建立新元素,系使用 document.createElement(),建立後须被渲染render才会显现。比如透过 appendChild()、insertBefore()、replaceChild()等。

举例来说,有一个网页原始码段落如下。

<body>
	<div>Hello</div>
	<div>Hi</div>
	<div>There</div>
</body>

我们要用JavaScript加入两个div,在body之内往後加。

const p = document.createElement("div")
p.textContent = "Hi"

const q = document.createElement("div")
p.textContent = "There"

const b = document.createElement("body")
b.appendChild(p)
b.appendChild(q)

最後网页会印出
Hello
Hi
There

依此类推 insertBefore() 可将新节点插入制定节点之前。

建立文字节点

建立新文字节点,系使用 document.createtTextNode(),建立後须被渲染render才会显现。比如透过 appendChild()、insertBefore()、replaceChild()等。原理同上。

DOM节点的编辑及删除

与前述插入节点原理相同,我们还能编辑、删除节点内容。

取代节点内容

取代(编辑)节˙点内容,系使用 replaceChild()。举例来说,有一个清单的网页原始码段落如下。

<ul id="DNU">
	<li>Tokyo</li>
    <li>Kyoto</li>
    <li>Tohoku</li>
    <li>Nagoya</li>
    <li>TokyoTech</li>
</body>

接下来,依序取得最外层的(容器)、内层的(元素)、建立节点、取代节点内容。

let DNU = document.getElementById('DNU')
let oldDNU = document.querySelectorAll('li')

let newDNU = document.createElement('li')
let newUniv = document.createTextNode("Osaka, TDMU, Tsukuba")
newDNU.appendChild(newUniv)

DNU.replaceChild(newDNU, oldDNU)

就这样,新的国立大学法人取代旧名单了。

删除节点内容

取代(编辑)节˙点内容,系使用 removeChild() 删除指定节点。举例来说,有一个清单的网页原始码段落如下。

<ul id="DNU">
	<li>Tokyo</li>
    <li>Kyoto</li>
    <li>Tohoku</li>
    <li>Nagoya</li>
    <li>TokyoTech</li>
</body>

接下来,依序取得最外层的(容器)、内层的(元素)、删除节点内容。

let DNU = document.getElementById('DNU')
let removeDNU = document.querySelectorAll('li')[5]

DNU.replaceChild(removeDNU)

就这样,名单中第5项的TokyoTech被移除了。

DOM节点的样式

本来,网页样式多是由CSS主管的。但在一些特殊情况下,可能需要JavaScript去触发/写入CSS样式。我们可以做到:

  • 修改style属性
  • 修改class属性
  • 直接写入(利用document.write)

有关情形并不多见,意者可从以上主题更加深入。


<<:  Day-23 使用DOM节点

>>:  Angular 深入浅出三十天:表单与测试 Day26 - 进阶表单开发技巧 - 自订验证器

兴起想做 Design System 的起源

忘记在哪边看到的一句话 最难的工作要交给最懒的人,因为他会找到最有效率、省时省工的方式把它完成 由...

DAY25: 作用域三种类

在这一篇主要讲了Node 在终机端和脚本文件this不同的指向,那麽今天要来简单介绍Nodejs作用...

Day08:【TypeScript 学起来】物件型别 Object Types : object

https://bit.ly/2XuVqBJ (这篇必看,不分享对不起自己) //原来南无观世音菩...

身份验证,授权和会计(authentication, authorization, and accounting (AAA))Part II

通过审核(查看日志)来跟踪“谁做了什麽”来确定或确定责任制。记帐记录“已完成的工作”,而身份验证则标...

【电子商务安全】概论

电子商务安全 发展 电子商务经营模式 B2B:企业对企业透过网际网路沟通或下单采购的商业行为 交易频...