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 ...
随机推荐
- terminal Failed to fork(connot allocate memory)问题处理
今天遇到服务器无法SSH,VNC操作命令提示fork:cannot allocate memory free查看内存还有(注意,命令可能要多敲几次才会出来) 查看最大进程数 sysctl kernel ...
- Flask+elasticsearch实现搜索引擎入门教程+Curl调试
前几天,在github上看到了一个关于elasticsearch的小项目,有点小兴趣,于是就结合着Flask,研究了一下,分享给大家. 准备资料: 1.安装elasticsearch 参考教程:htt ...
- css-目标伪类选择器:target的应用
目标伪类选择器:target是众多CSS3众多 动态 伪类选择器中的一个,用来匹配锚点指向的元素,突出显示活动的HTML锚. <style> p:target{ border: 2px s ...
- 力扣—gray code (格雷编码) python实现
题目描述: 中文: 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异. 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列.格雷编码序列必须以 0 开头. 英文: Th ...
- Node.js require 方法
Node.js 中存在 4 类模块(原生模块和3种文件模块),尽管 require 方法极其简单,但是内部的加载却是十分复杂的,其加载优先级也各自不同
- MySQL数据库基本操作以及SQL语句
连接mysql的语法 mysql -u用户名 -p密码 [-h主机名] [-P端口号] 在一个mysql服务器中, 可以有多个mysql数据库(本质是一个文件夹) 在一个mysql数据库中, 可以有多 ...
- java版扫雷
package com.titian.bean; import java.awt.CardLayout; import java.awt.Point; public class Grid { char ...
- bzoj 2015
http://www.lydsy.com/JudgeOnline/problem.php?id=2015 裸最短路(' ' ) 不过我最初以为是mst (' ' ) #include & ...
- 探索Redis设计与实现2:Redis内部数据结构详解——dict
本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...
- C语言编译exe添加图标
C语言是一门通用的计算机编程语言,可以直接编译为可执行文件.在windows下,可执行文件的后缀是exe,我们编写一个最简单的程序test.c: #include <stdlib.h> i ...