节点操作:

  • 查看对象属性的值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详解的更多相关文章

  1. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  2. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  3. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  4. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  5. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  6. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  7. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  8. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  9. Node.js npm 详解

    一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...

随机推荐

  1. 数据库设计-Mysql数据库表设计的过程中几个关键点

    一.表设计过程中应该注意的数据类型 1)更小的通常更好 控制字节长度 2)使用合适的数据类型: 如tinyint只占8个位,char(1024)与varchar(1024)的对比,char用于类似定长 ...

  2. 蛋疼的 403 Forbidden You don’t have permission to access / on this server.

    参考博文: a.http://www.linuxidc.com/Linux/2016-09/134827.htm 这个解释挺好 昨天配置新服务器:以为自己老手  就一步到位结果一直出现 403 For ...

  3. python 发送json数据操作实例分析 - python

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例讲述了python 发送json数据操作.分享给大家供大家参考,具体如下: # !/usr/bin/env py ...

  4. html+jquery+php实现文件上传全过程

    本例子采用html+jquery+php实现上传功能 html部分 <!DOCTYPE html> <html> <head> <meta charset=& ...

  5. java--ArrayList,LinkedList应用比较

    import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class ListDem ...

  6. 执行cython文件

    找到目录下的setup.py文件 cd到工程目录下: 执行 python3 setup.py build_ext --inplace

  7. matplotlib不显示图片

    import matplotlib.pyplot as plt 绘制好图像之后,需要使用plt.show()才会显示出图片.

  8. 【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 ...

  9. leetcode-166周赛-5280-用户分组

    题目描述: 自己的提交: class Solution: def groupThePeople(self, groupSizes: List[int]) -> List[List[int]]: ...

  10. Java排序算法 [选择、冒泡、快排]

    选择排序: 简述:从数组的第一个元素开始,依次与其他所有的元素对比,如果比自身大或小(取决于升序或降序)交换位置. package com.sort; import java.util.Arrays; ...