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/ ...
随机推荐
- Apache服务——个人用户主页功能
使用Apache服务部署静态网站(二) 个人用户主页功能 Apache服务程序中有个默认未开启的个人用户主页功能,能够为所有系统内的用户生成个人网站,确实很实用哦~ 第1步:开启个人用户主页功能: [ ...
- 用workspace管理工程,并解决多静态库依赖
from:http://www.cnblogs.com/perryxiong/p/3759818.html 最近我在项目中遇到一些工程之间的管理问题. 模型: 其中 库A 是一个公共的基础静态库, ...
- 【Java Web开发学习】Spring发布RMI服务
[Java 远程服务]Spring发布RMI服务 转载:https://www.cnblogs.com/yangchongxing/p/9084066.html RmiServiceExporter可 ...
- JQuery 操作checkbox
获取checkbox选中的状态 deleteAll全选的name 1. $("input[name='deleteAll']").is(":checked") ...
- 你不会还在用这8个错误的SQL写法吧?
1.LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引 ...
- MySQL必知必会-官方数据库表及SQL脚本导入生成
最近在复习SQL语句,看的是MySQL必知必会这本书,但是发现附录中只有表设计,没有表的具体数据.所以在学习相应的语句中体验不是很好,去网上查了数据库的内容,自己慢慢导入到了数据库中.把表放出来作为参 ...
- Unity中文API参考手册
转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6835582.html Unity5中文脚本手册 网页版 Unity API 执行顺序: Unity5中 ...
- 你想要的 HBase 原理都在这了
目录 一. 集群架构 集群角色 工作机制 二.存储机制 A. 存储模型 B. LSM 与 Compaction C. Region 分裂 D. 自动均衡 三.访问机制 四. 鉴权 五. 高可靠 1.集 ...
- Flutter - You need to use a different version code for your APK or Android App Bundle because you already have one with version code 1.
前两天提交了一个版本Google Play,结果今天收到拒绝的邮件,说App内购有问题. 于是把设置里面的支付宝和微信打赏功能关闭,又打了一个aab. 然后上传到Google Play,结果提示 Yo ...
- Spring与Shiro整合 静态注解授权
Spring与Shiro整合 静态注解授权 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 使用Shiro的种类 首先,Shiro的授权方式共有三种: 1.编程式授权(不推荐) 2. ...