JS---DOM---元素创建的不同方式---三种方式,5个案例
元素创建-----为了提高用户的体验
元素创建的三种方式:
1. document.write("标签的代码及内容");
my$("btn").onclick = function () {
document.write("<p>这是一个标签</p>");
};
案例1:用documnet.write嵌入外部的代码内容(例子:百度新闻码)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title</title>
<style type=text/css>
div {
font-size: 12px;
font-family: arial
} .baidu {
font-size: 14px;
line-height: 24px;
font-family: arial
} a, a:link {
color: #0000cc;
} .baidu span {
color: #6f6f6f;
font-size: 12px
} a.more {
color: #008000;
} a.blk {
color: #000;
font-weight: bold;
}</style>
</head>
<body> <script language="JavaScript" type="text/JavaScript"
src="http://news.baidu.com/ns?word=x%20title%3Aiphone&tn=newsfcu&from=news&cl=2&rn=5&ct=0"></script>
</body>
</html>
2. 对象.innerHTML="标签及代码";
//点击按钮,在div中创建一个p标签
//第二种方式创建元素: 对象.innerHTML="标签代码及内容"; my$("btn").onclick = function () {
my$("dv").innerHTML = "<p>床前明月光 疑是地上霜,举头望明月,低头思故乡</p>"
};
案例2:点击按钮,在div中创建一个图片
<input type="button" value="来个图片" id="btn" />
<div id="dv"></div> <script src="common.js"></script> <script>
my$("btn").onclick = function () {
my$("dv").innerHTML = "<img src='images/liuyan.jpg' alt='美女' />";
};
</script>
案例3:点击按钮创建列表,鼠标移过改变背景颜色
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>title</title>
<style>
div {
width: 250px;
height: 350px;
background-color: pink;
}
</style>
</head> <body>
<input type="button" value="创建列表" id="btn" />
<div id="dv"></div>
<script src="common.js"></script>
<script> var names = ["杨过", "郭靖", "张无忌", "张三丰", "乔峰", "令狐冲"]
var str = "<ul style='list-style-type:none;cursor:pointer'>";
my$("btn").onclick = function () {
//根据循环创建对应对数的li
for (var i = 0; i < names.length; i++) {
str += "<li>" + names[i] + "</li>";
}
str += "</ul>";
my$("dv").innerHTML = str; //代码执行到这里,li已经有了
//获取所有的li,遍历,添加鼠标进入事件,鼠标离开事件
var list = my$("dv").getElementsByTagName("li");
for (var i = 0; i < list.length; i++) {
list[i].onmouseover = function () {
this.style.backgroundColor = "hotpink";
};
list[i].onmouseout = function () {
this.style.backgroundColor = "";
};
}
};
</script>
</body> </html>
3. document.createElement("标签的名字");
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>title</title>
<style>
div {
width: 200px;
height: 150px;
border: 1px solid pink;
}
</style>
</head> <body>
<input type="button" value="创建p" id="btn" />
<div id="dv"></div>
<script src="common.js"></script>
<script>
my$("btn").onclick = function () {
//创建元素
var pObj = document.createElement("p");
pObj.innerText = ("这是一个p");
// setInnerText(pObj, "这是一个p");
//把创建后的子元素追加到父级元素中
my$("dv").appendChild(pObj);
}; </script>
</body> </html>
案例4:点击按钮,动态的创建列表,鼠标滑过高亮
如果是循环的方式添加事件,推荐用命名函数
如果不是循环的方式添加事件,推荐使用匿名函数
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>title</title>
<style>
* {
margin: 0;
padding: 0;
} div {
width: 200px;
height: 400px;
border: 2px solid pink;
} ul {
list-style-type: none;
cursor: pointer;
}
</style>
</head> <body>
<input type="button" value="创建动态列表" id="btn" />
<div id="dv"></div>
<!-- <input type="button" value="创建列表" id="btn"/>
<div id="dv"></div> -->
<script src="common.js"></script>
<script>
//点击按钮动态的创建列表,把列表加到div中
var kungfu = ["降龙十八掌", "黯然销魂掌", "葵花宝典", "九阴真经", "吸星大法", "如来神掌", "化骨绵掌", "玉女心经"]; my$("btn").onclick = function () {
//创建ul,把ul立刻加入到父级元素div中
var ulObj = document.createElement("ul");
my$("dv").appendChild(ulObj); //追加子元素
//动态的创建li,加到ul中
for (var i = 0; i < kungfu.length; i++) {
var liObj = document.createElement("li");
//设置li中间的文字内容
liObj.innerHTML = kungfu[i];
ulObj.appendChild(liObj);
//为li添加鼠标进入和离开事件
liObj.onmouseover = mouseoverHandle;
liObj.onmouseout = mouseoutHandle;
}
}; //此位置.按钮的点击事件的外面
function mouseoverHandle() {
this.style.backgroundColor = "hotpink";
}
function mouseoutHandle() {
this.style.backgroundColor = "";
} // 如果是循环的方式添加事件,推荐用命名函数
// 如果不是循环的方式添加事件,推荐使用匿名函数 </script>
</body> </html>
案例5:点击按钮创建一个表格
自己给自己debug好久,才发现没有把创建的2个列放进for循环
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>title</title>
<style>
div {
width: 300px;
height: 300px;
border: 2px solid hotpink;
}
</style>
</head> <body>
<input type="button" value="创建表格" id="btn" />
<div id="dv"></div> <script src="common.js"></script>
<script>
var arr = [
{ name: "百度", href: "http://www.baidu.com" },
{ name: "谷歌", href: "http://www.google.com" },
{ name: "优酷", href: "http://www.youku.com" },
{ name: "土豆", href: "http://www.tudou.com" },
{ name: "快播", href: "http://www.kuaibo.com" },
{ name: "爱奇艺", href: "http://www.aiqiyi.com" }
]; //点击按钮创建表格
my$("btn").onclick = function () {
//创建table加入div
var tableObj = document.createElement("table");
tableObj.border = "1";
tableObj.cellPadding = "0";
tableObj.cellSpacing = "0";
my$("dv").appendChild(tableObj);
//创建行tr,加入table
for (var i = 0; i < arr.length; i++) {
var dt = arr[i]; //每个对象
var trObj = document.createElement("tr");
tableObj.appendChild(trObj);
//创建第一个列,加入到行
var td1 = document.createElement("td");
td1.innerText = dt.name;
trObj.appendChild(td1); //创建第二个列,加入到行
var td2 = document.createElement("td");
td2.innerHTML = "<a href=" + dt.href + ">" + dt.name + "</a>";
trObj.appendChild(td2);
}
}; </script>
</body> </html>
JS---DOM---元素创建的不同方式---三种方式,5个案例的更多相关文章
- js异步执行 按需加载 三种方式
js异步执行 按需加载 三种方式 第一种:函数引用 将所需加载方法放在匿名函数中传入 //第一种 函数引用 function loadScript(url,callback){ //创建一个js va ...
- java核心知识点学习----创建线程的第三种方式Callable和Future CompletionService
前面已经指出通过实现Runnable时,Thread类的作用就是将run()方法包装成线程执行体,那么是否可以直接把任意方法都包装成线程执行体呢?Java目前不行,但其模仿者C#中是可以的. Call ...
- Java反射机制(创建Class对象的三种方式)
1:了解什么是反射机制? 在通常情况下,如果有一个类,可以通过类创建对象:但是反射就是要求通过一个对象找到一个类的名称: 2:在反射操作中,握住一个核心概念: 一切操作都将使用Object完成,类 ...
- JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取
创建连接对象的三种方式 //第一种方式 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ ...
- Java反射机制(创建Class对象的三种方式)
1:SUN提供的反射机制的类: java.lang.Class<T> java.lang.reflect.Constructor<T> java.lang.reflect.Fi ...
- java核心知识点----创建线程的第三种方式 Callable 和 Future CompletionService
前面已经指出通过实现Runnable时,Thread类的作用就是将run()方法包装成线程执行体,那么是否可以直接把任意方法都包装成线程执行体呢?Java目前不行,但其模仿者C#中是可以的. Call ...
- Java 数组元素逆序Reverse的三种方式
Java 数组元素逆序Reverse的三种方式 本文链接:https://blog.csdn.net/xHibiki/article/details/82930521 题目 代码实现 说明 int ...
- spring中创建bean对象的三种方式以及作用范围
时间:2020/02/02 一.在spring的xml配置文件中创建bean对象的三种方式: 1.使用默认构造函数创建.在spring的配置文件中使用bean标签,配以id和class属性之后,且没有 ...
- JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取
创建连接对象的三种方式 //第一种方式 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ ...
随机推荐
- 来看看Python炫酷的颜色输出与进度条打印
英语单词优化 上篇文章写到了Python开发英语单词记忆工具,其中依赖了bootstrap.css jQuery.js 基础html模块以及片段的css样式.有些朋友问,怎么能将这个练习题打包成单独的 ...
- h5-面试题
干货!各种常见布局实现+知名网站实例分析 前端面试考点多?看这些文章就够了(2019年6月更新版) 前端面试:这50个经典前端面试题面试者必看! Vue面试中,经常会被问到的面试题/Vue知识点整理 ...
- mybatis 和servlet使用MVC实现用户登录,注册,退出
普通实现: USerMapper.java: package com.bjsxt.mapper; import org.apache.ibatis.annotations.Param; import ...
- HDU5343 MZL's Circle Zhou(SAM+记忆化搜索)
Problem Description MZL's Circle Zhou is good at solving some counting problems. One day, he comes u ...
- Java中跳出多重嵌套循环的方法
一.使用标号 1.多重嵌套循环前定义一个标号 2.里层循环的代码中使用带有标号 break 的语句 public static void main(String[] args) { ok: for(i ...
- [Java并发] AQS抽象队列同步器源码解析--锁获取过程
要深入了解java并发知识,AbstractQueuedSynchronizer(AQS)是必须要拿出来深入学习的,AQS可以说是贯穿了整个JUC并发包,例如ReentrantLock,CountDo ...
- Java语法进阶14-网络编程
网络编程 软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构. B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构. 网络通信协议 网络通信 ...
- tensorflow常用函数解释
从二维数组中选一个矩形 import tensorflow as tf data = [[1,2,3,4,5,6,7,8],[11,12,13,14,15,16,17,18]] x = tf.stri ...
- MySQL 04
目录 python操作mysql mysql sql注入问题 问题描述 解决办法 增/删/改 查询 索引 基本概念 索引的原理 mysql索引种类 普通索引 唯一索引 联合索引 创建索引 正确使用索引 ...
- 基于RT-Thread的开源飞控StarryPilot
背景描述 近年来无人机应用市场日趋火热,无人机开始被应用在多个领域之中,比如航拍,植保,运输,安防等.随着应用场景的增加,对于无人机的大脑一飞控,的性能和功能要求也变得越来越高.国内具有一大批优质的无 ...