JavaScript_DOM详解
节点操作:
- 查看对象属性的值obj.getAttribute()
如:
//获取图片
var imgs = document.getElementsByTagName("img");
//查看src属性的值obj.getAttribute()
alert(imgs[0].getAttribute("src"));
- 修改对象属性的值obj.setAttribute(属性,属性值)
如:
//获取图片
var imgs = document.getElementsByTagName("img");
//修改src属性的值obj.setAttribute(属性,属性值)
imgs[0].setAttribute("src","../img/img02.jpg");
- 创建一个节点document.createElement();
如:
//创建一个节点
var newimg = document.createElement("img");
//将图片的路径设置为图片3
newimg.setAttribute("src","../img/img03.jpg");
- 为新创建的节点设置属性
如:
//newimg.setAttribute("width","300px"); //或下面的方法
newimg.style.width = "300px";
newimg.style.marginRight = "10px";
- 在指定的节点插入图片
//1、在获取到的图片前面插入图片对象(新,指定的位置)
//objdiv.insertBefore(newimg,imgs[0]); //2、在指定节点前插入节点
//appendChild()在子节点的末尾追加节点
//objdiv.appendChild(newimg); //3、克隆节点cloneNode(t|f)
//如果为true时:克隆自己以及所有的子元素
//false时:不克隆子元素
var objc = objdiv.cloneNode(true);
objc.style.float = "left";
objdiv.appendChild(objc);
- 删除节点
//删除子节点 removeChild();先访问到父节点再删除
//imgs[0].parentNode.removeChild(imgs[0]); //删除自己
imgs[0].remove();
//替换节点 replaceChild(new ,old);
- 节点的属性
//nextElementSibling获取下一个兄弟节点
//previousElementSibling 获取上一个兄弟元素节点
//parentNode 获取父节点
//childNodes 获取所有的子节点、可通过数组访问
//firstChild 获取第一个子节点
//last 获取最后一个子节点
表格操作:
//获取表格对象
var table = document.getElementById("mytable"); //获取tr
var trs = document.getElementsByTagName("tr"); //获取表格的所有行
var row = table.rows;
- 添加一行的操作方法
//(方法一)插入行insetRow(index),不需要事先获取td,直接将td带入作为内容添加进去
//var row1 = table.insertRow(1).innerHTML = '<td>红楼梦</td><td>30</td>'; //(方法二)先获得td,再给td赋值
var row1 = table.insertRow(1); //获得第一行
var td1 = row1.insertCell(0); //获得第一个td
var td2 = row1.insertCell(1); //将从输入框中获取到的信息赋值给td
td1.innerHTML = shu;
td2.innerHTML = danjia; //方法三,将克隆得到的数据插入
//先克隆第4行作为需要增加的数据
/*
var rowc = trs[3].cloneNode(true);
table.appendChild(rowc); //在table的孩子后追加克隆得到的数据
*/
删除行
//删除行deleteRow(index)
table.deleteRow(1);
实现图片轮播效果:


- 代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/图片轮播.js" type="text/javascript" charset="utf-8"></script>
<style type="text/css">
* {
padding: 0px;
margin: 0px;
} #con {
width: 400px;
margin: auto;
margin-top: 10%;
position: relative;
} #img {
width: 400px;
height: 300px;
} li {
list-style: none;
width: 78px;
height: 60px;
background: rgba(0, 0, 0, 0.4);
float: left;
text-align: center;
line-height: 60px;
color: white;
font-size: 20px;
border: 1px gainsboro solid;
cursor: pointer; } li:nth-child {
background-color: rgba(0,0,0,0.4);
} ul {
position: absolute;
bottom: 4px;
}
</style>
</head>
<body>
<div id="con">
<div id="pics">
<img id="img" src="../img/img01.jpg" alt="图片路径错误">
</div>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
</body>
</html>
- JavaScript代码
var imgs = ["img00.jpg", "img01.jpg", "img02.jpg", "img03.jpg", "img04.jpg"];
var texts = ["一", "二", "三", "四", "五"]; var index = 0;
var lx; window.onload = test01; function test01() {
lx = setInterval("changeImg()", 2000);
//获取li
var lis = document.getElementsByTagName("li"); //循环绑定单击事件
for (var i = 0; i < lis.length; i++) {
bind(i);
}
} function bind(i) {
//index--;
var lis = document.getElementsByTagName("li");
lis[i].onclick = function() {
index = i - 1;
//清除定时器
clearInterval(lx);
changeImg();
lx = setInterval("changeImg()", 2000);
}
} function changeImg() {
index++;
if (index > imgs.length - 1) {
index = 0;
} //获取图片
var img = document.getElementById("img");
//修改图片的属性
var imgsrc = "../img/" + imgs[index];
img.setAttribute("src", imgsrc); list();
} function list() {
//获取li
var lis = document.getElementsByTagName("li");
//循环li
for (var i = 0; i < lis.length; i++) {
if (i == index) {
//换背景色
lis[index].style.backgroundColor = "rgba(60,172,200,0.4)";
//换背景文字
lis[index].innerText = texts[index];
} else {
lis[i].style.backgroundColor = "rgba(0,0,0,0.4)";
lis[i].innerText = i + 1;
}
}
}
JavaScript_DOM详解的更多相关文章
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
- Android Notification 详解——基本操作
Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
随机推荐
- 封装一个Js 对象 生成Json
<script src="~/Content/Scripts/jquery-1.11.3.min.js"></script> <script> ...
- 小程序中this.setData的使用和注意事项
前言:微信小程序中经常需要用到this.setData({})把变量值渲染到视图层,那到底什么是this.setData,如何使用?需要注意哪些?作为一个初学者,分享一点我的经验,希望大家批评指正. ...
- web前端架构师学习流程
JavaScript 开发(高级) 系统知识 1.1ECMAScript标准的发展过程,ES6语言对JavaScript的改进: 1.2ES6中语法层面的新特性(let.const.参数扩展.模块化等 ...
- 【记录】logstash 命令解释
输入./bin/logstash --help 查看对应解释如下 -f #意即文件,运行指定文件 #logstash 会自动读取 /etc/logstash.d/ 目录下所有 *.conf的文本文件, ...
- 深度学习之Tensorflow 工程化项目实战 配套资源
https://www.aianaconda.com/index/CodeProject
- 在eclipse中添加svn插件
1.点击菜单栏中的help选项,然后选择Install New Software,然后点击ADD,输入: name:subclipse url:http://subclipse.tigris. ...
- 力扣—Remove Duplicates from Sorted List(删除排序链表中的重复元素)python实现
题目描述: 中文: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2输出: 1->2 示例 2: 输入: 1->1->2 ...
- SVN连接不上仓库,问题之一
如果之前用过SVN,在新的地址上用,发现一直连不上,报错.有可能是因为默认使用了之前的地址,所以没弹出输账号和密码的弹框. 解决方法就是:把之前的链接地址全部清除掉. 右键找到SVN里面的 Sett ...
- Vue路由组件vue-router
一.路由介绍 Creating a Single-page Application with Vue + Vue Router is dead simple. With Vue.js, we are ...
- STM32点LED灯
一.建立项目模板 这里的user中重复引用了system_stm32f10x.c Output中选择Create HEXFile,并且可以选择输出路径. Listing中可以选择输出路径. 然后在C/ ...