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 ...
随机推荐
- 【知识强化】第五章 输入/输出(I/O)管理 5.1 I/O管理概述
这门课的最后一个章节——设备管理. 操作系统它作为系统资源的管理者,既需要对上层的软件进行管理,也需要对下层的硬件进行管理.操作系统它需要对处理机还有存储器这些硬件进行管理,但是这些硬件其实是在计算机 ...
- linuxprobe培训第3节课笔记2019年7月7日
linux常用命令: echo:在终端输出字符串或变量提取后的值 date:显示及设置系统的时间或日期 reboot:重启 poweroff:关机 wget:下载 ps:查看系统中的进程状态(常用参数 ...
- Codeforces 360D Levko and Sets (数论好题)
题意:有一个长度为n的数组a和一个长度为m的数组b,一个素数p.有n个集合,初始都只有一个1.现在,对(i从1到n)第i个集合执行以下操作: 对所有集合中的元素c,把c * (a[i] ^ b[j]) ...
- windows系统下MySQL中遇到1045问题
报错内容为"1045 Access denied for user 'root'@'localhost' (using password:YES)",对应的原因是密码错误,如 ...
- jquery 选项卡切换 带背景图片
html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...
- 杂谈、 素材资源,没有美工不会ps一样可以美观
免费素材网站 阿里巴巴矢量图,大部分图标都有颜色像素可选,格式可选3种, http://www.iconfont.cn/plus/home/index?spm=a313x.7781069.199891 ...
- pycharm windows 远程修改服务器代码
配置过程 本机环境 操作系统:win10 IDE:Pycharm 远程服务器 操作系统:ubuntu 4.4.0 配置了ssh,可以使用ssh进行远程登陆 配置Deployment 首先,在pycha ...
- cocos2D-X not config ndk path
{ 双击击那个error,那个路径就加上了 File = >local.properties }
- 【多线程】无锁编程以及CAS
无锁编程 / lock-free / 非阻塞同步 无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被阻塞的情况下实现变量的同步,所以也叫非阻塞同步(Non-blocking Sy ...
- PHP clearstatcache() 函数
定义和用法 clearstatcache() 函数清除文件状态缓存. PHP 会缓存某些函数的返回信息,以便提供更高的性能.但是有时候,比如在一个脚本中多次检查同一个文件,而该文件在此脚本执行期间有被 ...