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 ...
随机推荐
- 数据库设计-Mysql数据库表设计的过程中几个关键点
一.表设计过程中应该注意的数据类型 1)更小的通常更好 控制字节长度 2)使用合适的数据类型: 如tinyint只占8个位,char(1024)与varchar(1024)的对比,char用于类似定长 ...
- 蛋疼的 403 Forbidden You don’t have permission to access / on this server.
参考博文: a.http://www.linuxidc.com/Linux/2016-09/134827.htm 这个解释挺好 昨天配置新服务器:以为自己老手 就一步到位结果一直出现 403 For ...
- python 发送json数据操作实例分析 - python
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例讲述了python 发送json数据操作.分享给大家供大家参考,具体如下: # !/usr/bin/env py ...
- html+jquery+php实现文件上传全过程
本例子采用html+jquery+php实现上传功能 html部分 <!DOCTYPE html> <html> <head> <meta charset=& ...
- java--ArrayList,LinkedList应用比较
import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class ListDem ...
- 执行cython文件
找到目录下的setup.py文件 cd到工程目录下: 执行 python3 setup.py build_ext --inplace
- matplotlib不显示图片
import matplotlib.pyplot as plt 绘制好图像之后,需要使用plt.show()才会显示出图片.
- 【leetcode】1005. Maximize Sum Of Array After K Negations
题目如下: Given an array A of integers, we must modify the array in the following way: we choose an i an ...
- leetcode-166周赛-5280-用户分组
题目描述: 自己的提交: class Solution: def groupThePeople(self, groupSizes: List[int]) -> List[List[int]]: ...
- Java排序算法 [选择、冒泡、快排]
选择排序: 简述:从数组的第一个元素开始,依次与其他所有的元素对比,如果比自身大或小(取决于升序或降序)交换位置. package com.sort; import java.util.Arrays; ...