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 ...
随机推荐
- windows10图形化连接CentOS7
前提:CentOS已经安装图形化,安装教程可以百度 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release (Core) 安装 ...
- String类可以被继承吗?我们来聊聊final关键字!
String类可以被继承吗?我们来聊聊final关键字! String在java基础知识中绝对是个重点知识,关于String的一些问题也是非常的多,而且牵涉到内存等高级知识,在面试中也是经常被考察的一 ...
- 试试监听输入框的值 (eq:在未输入前,按钮为灰色,输入内容后,按钮变蓝色)
参考网址:https://blog.csdn.net/tel13259437538/article/details/78927071
- XMPP即时通讯协议使用(十一)——Openfire表结构汇总
行号 字段名称 字段描述 字段类型 长度 主键 说明 允许为空 用户组数据表(ofGroup) 1 groupName 组名 varchar2 50 ★ NOT NULL 2 descriptio ...
- python 多进程队列数据处理
# -*- coding:utf8 -*- import paho.mqtt.client as mqtt from multiprocessing import Process, Queue imp ...
- 5分钟搞定android混淆(转)
转自:https://www.jianshu.com/p/f3455ecaa56e 前言 混淆是上线前挺重要的一个环节.android使用的ProGuard,可以起到压缩,混淆,预检,优化的作用.但是 ...
- 异常:Error response from daemon: conflict: unable to delete 6fa48e047721 (cannot be forced) - image has dependent child images
在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器(哪怕是已经停止的容器),否则无法删除该镜像. 停止容器 # docker stop $(docker ps -a | grep ...
- spring 获取url参数
1. usl格式: http://localhost:8080/contact/delete/3 java代码 @RequestMapping(value="/delete/{id}&quo ...
- sql中的(case when then else end )的用法(相当于java中的if else)
Case具有两种格式:简单Case函数和Case搜索函数. 1.简单Case函数: CASE sex WHEN‘1’THEN‘男’ WHEN‘0’THEN‘女’ ELSE‘其他’END 2.Case搜 ...
- 【和孩子一起学编程】 python笔记--第四天
第十一章: 可变循环 newStars = int(input("how many stars do you want?")) for i in range(newStars): ...