JS 之DOM对象(1)
介绍DOM1中底层的一些属性和方法。
节点操作
appendChild()
parentNode.appendChild(newNode) 在parentNode节点的最后插入newNode
insertBefore()
parentNode.insertBefore(newNode,someNode) 在parentNode节点里面的someNode节点前插入新节点newNode
replaceChild()
parentNode.replaceChild(newNode,someNode) 在parentNode节点里面把someNode节点替换成newNode
removeChild()
parentNode.removeChild(someNode) 在parentNode节点里删除指定的节点someNode
cloneNode()
someNode.cloneNode(true) 创建someNode这个节点的副本,传一个参数,布尔值,true表示深复制,复制整个节点树。false表示浅复制,只复制节点本身。节点复制后,还需要使用appendChild,insertBefore等方法额外添加文档中。
document对象
document.documentElement属性指html元素
document.body属性指body元素
document.url 页面完整的url
document.domain 页面的域名
document.referrer 链接到当前页面的之前那个页面的url
document.getElementById(id) 根据ID查找元素,页面ID需唯一
document.getElementsByClassName(name) 查找class="name"的元素列表,返回HTMLCollection对象
document.getElementsByTagName(name) 根据标签名name查找的元素列表,返回HTMLCollection对象
document.getElementsByName(name) 根据name=“name”查找的元素列表,返回HTMLCollection对象
document.forms 文档中所有的表单
document.images 文档中所有的img标签
document.links 文档中所有带href的a标签
document.write() 文档中写入内容
Element类型
eg:elem为某个元素
elem.id 元素elem在文档中的id
elem.title 元素elem的title属性
elem.className 元素elem的class名称
elem.getAttribute(name) 获得元素elem的属性名为name的值,自定义属性需要通过getAttribute()方法来获得,其他情况通过使用对象的属性来获得,比如elem.title等。
elem.setAttribute(name,'value') 给元素elem设置属性为name的值,值为value
elem.removeAttribute(name) 彻底删除元素elelm的特性name
elem.childNodes 指该元素elem的所有子节点
elem.children 指该元素elem的所有元素子节点
document.createElement(tagName) 创建标签名为tagName的新元素节点
document.createTextNode(text) 创建新的文本节点,文本内容为经过html编码的text
elem.normalize() 将相邻文本节点合并的方法
elem.splitText(index) 与normalize()方法相反,将文本节点分开的方法。index为分开的文本的索引值。
DocumentFragment类型
DocumentFragment指文档片段,在文档中没有对应的标记,不占用额外资源。
document.createDocumentFragment() 创建文档片段
内容操作
elem.innerText 指该元素的所有文本内容
elem.textContent 跟innerText一样,兼容firefox,safari,opera,chrome
elem.innerHTML 返回当前元素elem的所有子节点的html代码
在IE中,当用innerHTML插入script或style标签时,需要在前面加上标签,使其由作用域外的元素变为作用域内的元素。如:div.innerHTML = '<input type="hidden"><script defer>alert(\'aa\')</scri' + 'pt>';
在chrome,safari中,需要将style标签添加到head元素中。document.head.appendChild(div);
elem.outerText
elem.outerHTML 写入时,这两个属性会修改调用它的元素
创建table表格
eg:
//创建table
var table = document.createElement('table');
table.border = 1;
table.width = '100%';
//创建tbody
var tbody = document.createElement('tbody');
table.appendChild(tbody);
//创建第一行
tbody.insertRow(0);
tbody.rows[0].insertCell(0);
tbody.rows[0].insertCell(1);
tbody.rows[0].cells[0].appendChild(document.createTextNode('cell 1.1'));
tbody.rows[0].cells[1].appendChild(document.createTextNode('cell 1.2'));
//创建第二行
tbody.insertRow(1);
tbody.rows[1].insertCell(0);
tbody.rows[1].insertCell(1);
tbody.rows[1].cells[0].appendChild(document.createTextNode('cell 2.1'));
tbody.rows[1].cells[1].appendChild(document.createTextNode('cell 2.2'));
DOM操作往往是JS程序开销中最大的部分,包括查询,重排重绘等,所以应尽量避免DOM的频繁操作。
JS 之DOM对象(1)的更多相关文章
- js的DOM对象
1.js的Array对象 ** 创建数组(三种) - var arr1 = [1,2,3]; ...
- JavaScript基础15——js的DOM对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- jQuery对象与JS原生dom对象之间的转换
jQuery就是JS的一个扩展库,工具库,提供很多方便快捷的方法,所以将JS对象转换为jQuery对象后,能更方便地操作这个对象.但是jQuery对象也不是万能的,有一些JS对象有的能,jQuery对 ...
- js操作DOM对象
js操作DOM对象 (Document Object Model)文档对象模型 nodeType返回值 1:元素节点 2:属性节点 3:文本节点 8:注释节点 9: 文档节点 nodeName 节点 ...
- js的dom对象(带实例超详细全解)
js的dom对象(带实例超详细全解) 一.总结 一句话总结: 1.DOM中的方法区分大小写么? 解答:区分 2.DOM中元素和节点的关系式什么? 解答:元素就是标签,节点中有元素节点,也是标签,节点中 ...
- 前端之JavaScript:JS之DOM对象三
js之DOM对象三 一.JS中for循环遍历测试 for循环遍历有两种 第一种:是有条件的那种,例如 for(var i = 0;i<ele.length;i++){} 第二种:for ...
- 前端之JavaScript:JS之DOM对象二
继续JS之DOM对象二 前面在JS之DOM中我们知道了属性操作,下面我们来了解一下节点操作.很重要!! 一.节点操作 创建节点:var ele_a = document.createElement(' ...
- 前端之JavaScript:JS之DOM对象一
js之DOM对象一 一.什么是HTML DOM HTML Document Object Model(文档对象模型) HTML DOM 定义了访问和操作HTML文档的标准方法 HTML DOM 把 ...
- 转:js包装DOM对象
我们在日常的应用中,使用Javascript大多数时间都是在用DOM ,以致于很多人都有一种看法就是DOM==JS,虽然这种看法是错误的,但是也可以说明DOM的重要性. 这就导致了我们在写JS的时候, ...
- 继续JS之DOM对象二
前面在JS之DOM中我们知道了属性操作,下面我们来了解一下节点操作.很重要!! 一.节点操作 创建节点:var ele_a = document.createElement('a');添加节点:ele ...
随机推荐
- Git学习 --> 个人常用命令add,commit以及push
Git命令行配置1 安装Github2 安装msysgit3 要配置用户名和油箱 git config --global user.name <用户名> 我的命令就是:git confi ...
- fatal error: file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Dev
类似这样的错误: fatal error: file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.pla ...
- 斯坦福iOS7公开课7-9笔记及演示Demo
这一部分主要介绍了iOS的绘图.手势.协议.block.力学特效动画(包括重力.碰撞.吸附等)以及自动布局的内容. 1.绘图.手势 (1)调用一个自定义的UIView时,可以使用awakeFromNi ...
- JavaScript Patterns 4.6 Immediate Object Initialization
( { // here you can define setting values // a.k.a. configuration constants maxwidth : 600, maxheigh ...
- c# 反射简单使用
类库dll,将生成ExampleLib.dll文件 namespace ExampleLib { public class Example { public static string FuncA() ...
- 【VB超简单入门】一、写在前面
每本书的前面总得写点什么,到我这里也自然不能免俗,前言这东西“存在即合理”,所以就随便写一点咯~ 首先这本书是给从未接触过编程的童鞋准备的,由于我学识疏浅,对VB也只是一知半解所以也只能讲一点点最基础 ...
- python split()函数使用拆分字符串 将字符串转化为列表
函数:split()Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list ...
- 【转】LINUX 5 常用ftp telnet配置
LINUX 5 常用ftp telnet配置 一.解决远程登陆乱码问题 目标:在xwindow和其console中使用中文界面,在纯console中使用英文 在/etc/profile最后加上一行 e ...
- IOS版本被拒的经历
IOS版本被拒的经历: 1,登陆方式依赖外部平台 因为我们的APP是只用微博登陆,想做成类似meerkat类型的,也能各种消息都同步微博. 结果当然行不通,这个确实是不听好人言,网上多个人都说过这个问 ...
- [转]Ionic – Mobile UI Framework for PhoneGap/Cordova Developers
本文转自:http://devgirl.org/2014/01/20/ionic-mobile-ui-framework-for-phonegapcordova-developers/ Ionic i ...