html代码:

<!--添加/删除/修改 -->
<div id="a1">
<button id="a2" onclick="add()">add</button>
</div> <div id="a3">
<button onclick="del()">del</button>
</div> <div id="a4" style="margin-top: 20px">
<span style="width: 20px;height: 20px">hello world !!!</span>
<button onclick="change()">change</button>
</div> <!--classname属性操作-->
<div id="cn" class="a11 b11 c11">
</div>

新增标签(document.createElement(标签))

 // 方式一(butter控件中添加事件)
function add() {
var a = document.createElement("span");
a.innerText='this span label!';
var father = document.getElementById('a1')
father.appendChild(a)
} // 方式二(直接document获取标签)
// // 通过的标签,定义事件(只执行一次函数)
// var s1 = document.getElementById('a2');
// var father = s1.parentNode;
//
// var a = document.createElement("span");
// a.innerText='this span label!';
//
// s1.onclick = function f() {
// father.appendChild(a);
// };

删除标签

//删除标签
function del() {
var father = document.getElementById('a1');
var son = father.getElementsByTagName('span')[0];
father.removeChild(son)
}

修改/替换 标签(replaceChild(新标签,旧标签))

//修改/替换 标签
function change() {
//找到父标签
var father = document.getElementById('a4');
//找到需要替换的旧标签
var son = father.getElementsByTagName('span')[0]; //创建一个标签
var ne = document.createElement('div'); // 方式一,定义创建标签样式
// ne.innerHTML = '<div style="background-color: blue;width: 200px;height: 200px">!!!!! </div>'; // 方式二,定义创建标签样式
// ne.style.backgroundColor = 'red';
// ne.style.width = '200px';
// ne.style.height = '200px';
// ne.innerText = "this is new div !!!! " //方式三,通过setattribute 设置标签样式.
ne.setAttribute('style',"background-color:red;width: 200px;height: 200px"); //这种方式也可以获取到对象的属性值
var ne2 = ne.getAttribute('style');
console.log(ne2)
//输出为:background-color:red;width: 200px;height: 200px //通过父标签 替换新旧标签
father.replaceChild(ne,son)
}

classname 属性操作

//classname属性操作
var classmame = document.getElementById('cn') //返回classname
console.log(classmame.className);
//class列表
console.log(classmame.classList);
console.log(classmame.classList[0]);
console.log(classmame.classList[1]);
console.log(classmame.classList[2]); //增加classname
classmame.classList.add("d11");
console.log(classmame.className);
//移除classname
classmame.classList.remove("d11");
console.log(classmame.className);

JavaScript学习 - 基础(八) - DOM 节点 添加/删除/修改/属性值操作的更多相关文章

  1. JavaScript学习 - 基础(六) - DOM基础操作

    DOM: DOM定义了访问HTML 和XML 文档的标准:1.核心DOM 针对结构化文档的标准模型2.XMK DOM 针对XML文档的标准模型3.HTML DOM 针对HTML文档的标准模型 DOM节 ...

  2. JavaScript学习 - 基础(七) - DOM event(事件)

    DOM event(事件) 定义事件: // 定义事件: //方式一,直接在标签上定义事件 // 方式二: var a11 = document.getElementsByName('a11')[0] ...

  3. JavaScript Dom基础-9-Dom查找方法; 设置DOM元素的样式; innerHTML属性的应用; className属性的应用; DOM元素上添加删除获取属性;

    JavaScript Dom基础 学习目标 1.掌握基本的Dom查找方法 domcument.getElementById() Domcument.getElementBy TagName() 2.掌 ...

  4. JavaScript学习基础部分

    JavaScript学习基础 一.简介 1.JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比方说 Internet Explorer. Mozilla.Firefo ...

  5. Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath

    转: Dom4j 操作, 节点查找 添加 删除 修改 ...xPath 2013年11月28日 10:48:59 今晚打酱油8 阅读数:8506更多 个人分类: JavaWeb   版权声明:本文为博 ...

  6. SUSE Ceph 增加节点、减少节点、 删除OSD磁盘等操作 - Storage6

    一.测试环境描述 之前我们已快速部署好一套Ceph集群(3节点),现要测试在现有集群中在线方式增加节点 如下表中可以看到增加节点node004具体配置 主机名 Public网络 管理网络 集群网络 说 ...

  7. asp.net 实现对xml文件的 读取,添加,删除,修改

    用于修改站内xml文件 已知有一个XML文件(bookstore.xml)如下:<?xml version="1.0" encoding="gb2312" ...

  8. JTree 添加 , 删除, 修改

    package com.swing.demo; import java.awt.BorderLayout; import java.awt.Container; import java.awt.eve ...

  9. SQL语句添加删除修改字段及一些表与字段的基本操作

    用SQL语句添加删除修改字段 1.增加字段     alter table docdsp    add dspcode char(200)2.删除字段     ALTER TABLE table_NA ...

随机推荐

  1. BZOJ1798[Ahoi2009]维护序列——线段树

    题目描述     老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成.    有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2 ...

  2. BZOJ3453 XLkxc(拉格朗日插值)

    显然f(i)是一个k+2项式,g(x)是f(i)的前缀和,则显然其是k+3项式,插值即可.最后要求的东西大胆猜想是个k+4项式继续插值就做完了.注意2p>maxint…… #include< ...

  3. 理解C语言递归up_and_down

    函数调用.理解递归 对于程序,编译器会对其分配一段内存,在逻辑上可以分为代码段,数据段,堆,栈. 代码段:保存程序文本,指令指针EIP就是指向代码段,可读可执行不可写 数据段:保存初始化的全局变量和静 ...

  4. 自学Linux Shell12.1-结构化命令if-then

    点击返回 自学Linux命令行与Shell脚本之路 12.1-结构化命令if-then 许多程序要求对shell脚本中的命令施加一些逻辑流程控制.有一类命令会根据条件使脚本跳过某些命令.这样的命令通常 ...

  5. UOJ#7. 【NOI2014】购票 | 线段树 凸包优化DP

    题目链接 UOJ #7 题解 首先这一定是DP!可以写出: \[f[i] = \min_{ancestor\ j} \{f[j] + (d[j] - d[i]) * p[i] + q[i]\}\] 其 ...

  6. JVM复习总结

    运行时数据区域 图中深色区域为,由所有线程共享的数据区域,其他为线程隔离的数据区. 程序计数器 程序计数器可以看作是当前线程执行的字节码的行号指示器. 虚拟机栈 虚拟机栈描述的是Java方法执行的内存 ...

  7. 字符串格式化format方法

    通过位置参数传参 print('{}, {}'.format('KeithTt', 18)) # KeithTt, 18 位置参数可以通过索引调用 print('{1}, {0}'.format('K ...

  8. NHibernate使用简单示例

    NHibernate使用小示例 1.新建Model类库项目. 使用代码生成器生成Model类. 此处以简单的UserInfo表作为示例. 注意字段前必须以 virtual 修饰. namespace ...

  9. 运行vb写的程序,有些电脑上会弹出一个与office相关的窗口

    到网上搜索了一下,找了几个解决方案,不过我的电脑上没出现过,所以先收藏一下,或许以后能用上. 来自:http://bbs.csdn.net/topics/380204412 今天将注册表的项一个个删除 ...

  10. R语言:随机抽样(sample函数)

    如果想从一堆数据集中随机抽出一个数,用sample函数就能实现,代码展示如下: forehead<-c(249,189,128,111,184,233,313,120,151,196,135,1 ...