- Dart编程教程
- Dart编程 - 首页
- Dart编程 - 概述
- Dart编程 - 环境搭建
- Dart编程 - 语法
- Dart编程 - 数据类型
- Dart编程 - 变量
- Dart编程 - 运算符
- Dart编程 - 循环
- Dart编程 - 决策语句
- Dart编程 - 数字
- Dart编程 - 字符串
- Dart编程 - 布尔值
- Dart编程 - 列表
- Dart编程 - 列表
- Dart编程 - 映射
- Dart编程 - 符号
- Dart编程 - Rune (字符码)
- Dart编程 - 枚举
- Dart编程 - 函数
- Dart编程 - 接口
- Dart编程 - 类
- Dart编程 - 对象
- Dart编程 - 集合
- Dart编程 - 泛型
- Dart编程 - 包
- Dart编程 - 异常处理
- Dart编程 - 调试
- Dart编程 - Typedef (类型定义)
- Dart编程 - 库
- Dart编程 - 异步编程
- Dart编程 - 并发
- Dart编程 - 单元测试
- Dart编程 - HTML DOM
- Dart编程实用资源
- Dart编程 - 快速指南
- Dart编程 - 资源
- Dart编程 - 讨论
Dart编程 - HTML DOM
每个网页都位于浏览器窗口内,浏览器窗口可以被视为一个对象。
一个文档对象代表显示在窗口中的HTML文档。文档对象具有各种属性,这些属性引用其他对象,允许访问和修改文档内容。
访问和修改文档内容的方式称为文档对象模型,或DOM。对象以层次结构组织。这种层次结构适用于Web文档中对象的组织。
窗口 - 层次结构的顶部。它是对象层次结构的最外层元素。
文档 - 加载到窗口中的每个HTML文档都成为一个文档对象。文档包含页面的内容。
元素 - 代表网页上的内容。例如文本框、页面标题等。
节点 - 通常是元素,但它们也可以是属性、文本、注释和其他DOM类型。
以下是一些重要DOM对象的简单层次结构:
Dart提供dart:html库来操作DOM中的对象和元素。基于控制台的应用程序无法使用dart:html库。要在Web应用程序中使用HTML库,请导入dart:html:
import 'dart:html';
接下来,我们将讨论下一节中的一些DOM操作。
查找DOM元素
dart:html库提供querySelector函数来搜索DOM中的元素。
Element querySelector(String selectors);
querySelector()函数返回与指定选择器组匹配的第一个元素。“选择器”应使用CSS选择器语法,如下所示
var element1 = document.querySelector('.className');
var element2 = document.querySelector('#id');
示例:操作DOM
请按照Webstorm IDE中的以下步骤操作:
步骤1 - 文件 -> 新建项目 -> 在位置处,将项目名称设置为DemoWebApp。
步骤1 - 在“生成示例内容”部分,选择SimpleWebApplication。
这将创建一个示例项目DemoWebApp。其中包含一个pubspec.yaml文件,其中包含需要下载的依赖项。
name: 'DemoWebApp' version: 0.0.1 description: An absolute bare-bones web app. #author: Your Name <email@example.com> #homepage: https://www.example.com environment: sdk: '>=1.0.0 <2.0.0' dependencies: browser: '>=0.10.0 <0.11.0' dart_to_js_script_rewriter: '^1.0.1' transformers: - dart_to_js_script_rewriter
如果已连接到网络,则这些依赖项将自动下载,否则可以右键单击pubspec.yaml并获取依赖项。
在web文件夹中,您将找到三个文件:index.html、main.dart和style.css
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<meta http-equiv = "X-UA-Compatible" content = "IE = edge">
<meta name = "viewport" content = "width = device-width, initial-scale = 1.0">
<meta name = "scaffolded-by" content = "https://github.com/google/stagehand">
<title>DemoWebApp</title>
<link rel = "stylesheet" href = "styles.css">
<script defer src = "main.dart" type = "application/dart"></script>
<script defer src = "packages/browser/dart.js"></script>
</head>
<body>
<h1>
<div id = "output"></div>
</h1>
</body>
</html>
main.dart
import 'dart:html';
void main() {
querySelector('#output').text = 'Your Dart web dom app is running!!!.';
}
运行index.html文件;您将在屏幕上看到以下输出。
事件处理
dart:html库为DOM元素提供了onClick事件。语法显示元素如何处理点击事件流。
querySelector('#Id').onClick.listen(eventHanlderFunction);
querySelector()函数从给定的DOM返回元素,而onClick.listen()将采用一个eventHandler方法,该方法将在引发点击事件时被调用。eventHandler的语法如下:
void eventHanlderFunction (MouseEvent event){ }
现在让我们来看一个例子来理解Dart中事件处理的概念。
TestEvent.html
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<meta http-equiv = "X-UA-Compatible" content = "IE = edge">
<meta name = "viewport" content = "width = device-width, initial-scale = 1.0">
<meta name = "scaffolded-by" content ="https://github.com/google/stagehand">
<title>DemoWebApp</title>
<link rel = "stylesheet" href = "styles.css">
<script defer src = "TestEvent.dart" type="application/dart"></script>
<script defer src = "packages/browser/dart.js"></script>
</head>
<body>
<div id = "output"></div>
<h1>
<div>
Enter you name : <input type = "text" id = "txtName">
<input type = "button" id = "btnWish" value="Wish">
</div>
</h1>
<h2 id = "display"></h2>
</body>
</html>
TestEvent.dart
import 'dart:html';
void main() {
querySelector('#btnWish').onClick.listen(wishHandler);
}
void wishHandler(MouseEvent event){
String name = (querySelector('#txtName') as InputElement).value;
querySelector('#display').text = 'Hello Mr.'+ name;
}
输出