js原生的节点操作API
// yi获取元素节点
//一 :过id的方式( 通过id查找元素,大小写敏感,如果有多个id只找到第一个)
document.getElementById('div1'); // 通过类名查找元素,多个类名用空格分隔,得到一个HTMLCollection(一个元素集合,有length属性,可以通过索引号访问里面的某一个元素)
var cls = document.getElementsByClassName('a b');
console.log(cls); // 通过标签名查找元素 返回一个HTMLCollection
document.getElementsByTagName('div'); // 通过name属性查找,返回一个NodeList(一个节点集合,有length属性,可以通过索引号访问)
var nm = document.getElementsByName('c');
console.log(nm); // 获取所有form标签(得到一个HTMLCollection集合)
var form = document.forms; // html5新加标签(ie8+)
// document.querySelector(); // 返回单个node,如果有多个匹配元素就返回第一个
// document.querySelectorAll(); // 返回一个nodeList集合 // 创建元素,只是创建出来并未添加到html中,需要与appendChild 配合使用
var elem = document.createElement('p');
elem.id = 'test';
elem.style = 'color: red';
elem.innerHTML = '我是新创建的节点';
document.body.appendChild(elem); // 创建文本节点 createTextNode
var txt = document.createTextNode('我是文本节点');
document.body.appendChild(txt); // 克隆节点(需要接受一个参数来表示是否复制元素)
var form = document.getElementById('test');
var clone = form.cloneNode(true);
clone.id = 'test2';
document.body.appendChild(clone); // 3 节点修改API
//节点修改APi有两个特点
// 1 不论新增还是替换节点,如果原本就在页面上,就会被替换
// 2 修改之后节点本身绑定的事件不会小时 // 1 appendChild ()
// 用法是: parent.appendChild(child)
// 会将child节点添加到parent里的最后面,如果子节点原本就存在,会移除原节点,添加新节点
// 到最后,但是事件会保留 // 2 insertBefore()
// 用法是 parent.insertBefore(newNode,refNode);
// refNode 是必须传的 不传会报错
// 如果 refNode 是undefined 和null 就会将新节点传入到parent节点的最后 // 3 removeChild()
// 用法是:parent.removeChild(child)
// 如果删除的不是父元素的子节点会报错
// var deleted = parent.removeChild(child)
// deleted 可以继续引用节点 ,被删除节点依然存在与内存中 // 4 replaceChild()
// 用法是:parent.replaceChild(newChild, oldChild); // 4 节点的关系APi
// 1 父关系API
// parentNode 父节点
// parentElement父元素 // 2 子关系API
// children 子元素
// childNodes 子节点
// firstElementChild 第一个子元素
// firstChild 第一个子节点
// lastElementChild 最后一个子元素
// lastChild 最后一个子节点 // 3 兄弟关系的API
// previousSibling 节点的上一个兄弟节点
// previousElementSibling 节点的上一个兄弟元素(ie9以下不支持)
// nextSibling 节点的下一个兄弟节点
// nextElementSibling 节点的下一个兄弟元素(ie9以下不支持) // 5 节点属性API
// setAttribute(name,value) 给元素设置属性
// getAttribute(name) 获取元素属性 // 6 直接修改元素的样式
elem.style.color = 'red';
elem.style.setProperty('font-size', '16px');
elem.style.removeProperty('color'); // 7 动态添加样式
var style = document.createElement('style');
style.innerHTML = 'body{color:red} #top:hover{background-color: red;color: white;}';
document.head.appendChild(style); 一、nodeName 属性: 节点的名称,是只读的。<br/> 1. 元素节点的 nodeName 与标签名相同<br/>
2. 属性节点的 nodeName 是属性的名称<br/>
3. 文本节点的 nodeName 永远是 #text<br/>
4. 文档节点的 nodeName 永远是 #document<br/> 二、nodeValue 属性:节点的值<br/> 1. 元素节点的 nodeValue 是 undefined 或 null<br/>
2. 文本节点的 nodeValue 是文本自身<br/>
3. 属性节点的 nodeValue 是属性的值<br/> 三、nodeType 属性: 节点的类型,是只读的。以下常用的几种结点类型:<br/> 元素类型 节点类型<br/>
!元素 1<br/>
属性 2<br/>
!文本 3 空格也是返回3<br/>
js原生的节点操作API的更多相关文章
- js原生的url操作函数,及使用方法。(附:下边还有jquery对url里的中文解码函数)
js原生的url操作函数,完善的. /*****************************/ /* 动态修改url */ /*****************************/ var ...
- 原生JS的DOM节点操作
DOM(Document Object Model/文档对象模型)是针对HTML和XML文档的一个API.DOM节点树:在文档中出现的空格.回车.标签.注释.文本.doctype.标签等都属于DOM节 ...
- 原生JS中DOM节点相关API合集
节点属性 Node.nodeName //返回节点名称,只读 Node.nodeType //返回节点类型的常数值,只读 Node.nodeValue //返回Text或Comment节点的文本值,只 ...
- js的DOM节点操作:创建 ,插入,删除,复制,查找节点
DOM含义:DOM是文档对象模型(Document Object Model,是基于浏览器编程的一套API接口,是W3C出台的推荐标准.其赋予了JS操作节点的能力.当网页被加载时,浏览器就会创建页面的 ...
- JS原生父子页面操作
var api = frameElement.api; //当前 W = api.opener;//父页面 W.setPerSel(jsonStr); api.close(); //关闭窗口 js操 ...
- JS对DOM节点操作整理
获取节点: //按照ID获取 document.getElementById('element'); //按照节点名称获取,返回类数组对象 document.getElementsByTagName( ...
- JavaScript原生的节点操作
前言:原生是Javascript的基础,还是需要多多重视,时间长都忘记了,现在整理一下. 获取子节点 children 不是标准的dom属性,但是几乎被所有浏览器支持.不包含文本节点. 注意:在IE中 ...
- JS Dom节点操作demo!
通过黑马课程的学习,在这里分享一个js Dom中节点操作的小练习 需求:使用js创建一个4*3的表格table. onload = function(){ function c(tagName){ r ...
- JS中常见原生DOM操作API
摘自:https://blog.csdn.net/hj7jay/article/details/53389522 几种对象 Node Node是一个接口,中文叫节点,很多类型的DOM元素都是继承于它, ...
随机推荐
- 验证代理ip是否可用
改编自:http://www.jianshu.com/p/588241a313e7 # _*_ coding:utf-8 _*_ import urllib2 import re class Test ...
- centos 使用RPM包安装指定版本的docker-engine
下面是拿安装docker-engine-1.10.3-1为例: wget https://yum.dockerproject.org/repo/main/centos/7/Packages/docke ...
- DotNetBar中Supergrid显示树形数据
1.向窗体中拖一个Supergrid控件 2.添加列ID,NAME,MATH,CN,SEX 3.在任务窗格中勾选“Show Tree Lines”和“Show Tree Buttons” 4.添加数据 ...
- SpringSecurity-UsernamePasswordAuthenticationFilter的作用
UsernamePasswordAuthenticationFilter应该是我们最关注的Filter,因为它实现了我们最常用的基于用户名和密码的认证逻辑. 先看一下一个常用的form-login配置 ...
- Linux(CentOS-7) 下载 解压 安装 redis 操作的一些基本命令
使用xshell 连接到虚拟机,并且创建 一个redis目录:创建文件命令:mkdir 文件名ls:查看当前文件里面的所有文件 使用xftp 将下载的linux版本 reids上传动新建的redis目 ...
- Linux vim快捷键
1 替换 r 替换 先按r再按要替换的内容 2 按yy复制当前行 按p是粘贴 3 # add at 18-10-25 #-------------------------------- ...
- [SQL]触发器把自增ID的值赋值给另外一个字段
ALTER TRIGGER test_Rate ON dbo.tRate FOR insert AS declare @errno ) begin UPDATE dbo.tRate SET vcUpd ...
- Android Studio2.0 教程从入门到精通Windows版
系列教程 Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android Studio2 ...
- python3之time、datetime、random
UTC:协调世界时,又称世界统一时间.世界标准时间.国际协调时间.由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC. 中国属于东八区,领先世界时间8小时 time模块 time.ti ...
- npm镜像地址的修改或切换
方法一:直接编辑npm的配置文件npm config edit修改registry的地址registry=https://registry.npm.taobao.org 方法二:用代码更改npm的配置 ...