DOM浅谈

本文介绍了DOM的概念及其在HTML文档中的应用,详细阐述了节点属性及方法,包括如何使用各种方法进行节点操作,例如插入、替换、删除等。

1.DOM 也是一种跨语言 的规范,换句话说,大多数主流编程语言都能使用它。W3C 为 DOM 定义了几种语言绑定。一种语言绑定就是为特定语言定义的让您使用 DOM 的 API。比如,可以使用为 C、Java 和 JavaScript 定义的 DOM 语言绑定。因此可以从这些语言中使用 DOM。还有几种用于其他语言的语言绑定,尽管很多是由 W3C 以外的第三方定义的。了解什么是 DOM 树?一个html文档就是一棵DOM树。它主要是由节点组成。

2.节点的属性

  • nodeName 报告节点的名称(详见下述)。
  • nodeValue 提供节点的 “值”(详见后述)。
  • parentNode 返回节点的父节点。记住,每个元素、属性和文本都有一个父节点。
  • childNodes 是节点的孩子节点列表。对于 HTML,该列表仅对元素有意义,文本节点和属性节点都没有孩子。
  • firstChild 仅仅是 childNodes 列表中第一个节点的快捷方式。
  • lastChild 是另一种快捷方式,表示 childNodes 列表中的最后一个节点。
  • previousSibling 返回当前节点之前 的节点。换句话说,它返回当前节点的父节点的 childNodes 列表中位于该节点前面的那个节点(如果感到迷惑,重新读前面一句)。
  • nextSibling 类似于 previousSibling 属性,返回父节点的 childNodes 列表中的下一个节点。
  • attributes 仅用于元素节点,返回元素的属性列表。
  • 3.节点方法

  • insertBefore(newChild, referenceNode)newChild 节点插入到 referenceNode 之前。记住,应该对 newChild 的目标父节点调用该方法。
  • replaceChild(newChild, oldChild)newChild 节点替换 oldChild 节点。
  • removeChild(oldChild) 从运行该方法的节点中删除 oldChild 节点。
  • appendChild(newChild)newChild 添加到运行该函数的节点之中。newChild 被添加到目标节点孩子列表中的末端
  • hasChildNodes() 在调用该方法的节点有孩子时则返回 true,否则返回 false。
  • hasAttributes() 在调用该方法的节点有属性时则返回 true,否则返回 false。
  • 4.

    与属性处理有关的方法

    getAttribute(name) 返回名为 name 的属性值。

    removeAttribute(name) 删除名为 name 的属性。

    setAttribute(name, value) 创建一个名为 name 的属性并将其值设为 value

    getAttributeNode(name) 返回名为 name 的属性节点(属性节点在 下一节 介绍)。

    removeAttributeNode(node) 删除与指定节点匹配的属性节点。

    与查找嵌套元素有关的方法

    getElementsByTagName(elementName) 返回具有指定名称的元素节点列表。

### Vue.js 的基本概念 Vue.js 是一款用于构建用户界面的渐进式 JavaScript 框架[^2]。它的核心理念在于通过简洁的模板语法,将数据以声明式的方式渲染到 DOM 中[^1]。Vue.js 只专注于视图层的设计,因此非常容易与其他库集成或嵌入现有项目中[^2]。 #### 基础用法 以下是 Vue.js 的一些基础功能及其使用方法: --- ### 数据绑定与插值表达式 Vue 提供了双大括号 `{{ }}` 插值语法,可以轻松地将数据插入到 HTML 元素中。例如: ```html <div id="app"> {{ message }} </div> <script> var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } }); </script> ``` 在这个例子中,`message` 属性被绑定到了 `<div>` 元素内部,并动态更新其内容。 --- ### 条件渲染 通过 `v-if` 指令,可以根据条件控制 DOM 元素的显示与否。例如: ```html <div id="app"> <p v-if="seen">Now you see me</p> </div> <script> var app = new Vue({ el: '#app', data: { seen: true } }); </script> ``` 当 `seen` 的值为 `true` 时,该段文字会显示;反之则隐藏[^3]。 --- ### 列表渲染 利用 `v-for` 指令,可以遍历数组并生成列表项。例如: ```html <div id="app"> <ul> <li v-for="todo in todos">{{ todo.text }}</li> </ul> </div> <script> var app = new Vue({ el: '#app', data: { todos: [ { text: 'Learn Vue.js' }, { text: 'Build an app' }, { text: 'Deploy the app' } ] } }); </script> ``` 这段代码展示了如何通过 `todos` 数组中的每一项生成对应的 `<li>` 元素[^3]。 --- ### 组件化开发 Vue 支持组件化的开发模式,能够将复杂的 UI 结构拆分为多个独立的小型组件。这有助于提高代码的可维护性和重用性[^4]。例如: ```javascript // 定义一个简单的子组件 Vue.component('greeting', { template: '<h1>Hello from component!</h1>' }); new Vue({ el: '#app' }); ``` 在页面中可以通过标签名调用此组件: ```html <div id="app"> <greeting></greeting> </div> ``` --- ### 总结 Vue.js 不仅提供了强大的数据绑定能力,还支持条件渲染、列表渲染以及组件化开发等多种特性。这些功能使得开发者能更高效地创建复杂而灵活的用户界面[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值