js中的DOM操作汇总
2015-11-25 16:53
696 查看
一、DOM创建
DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性。DOM节点有一个
Element,元素
Attribute,属性
Text,文本
DOM节点创建最常用的便是document.createElement和
二、DOM查询
兼容的获取第一个子元素节点方法:
varfirst=ele.firstElementChild||ele.children[0];
三、DOM更改
四、属性操作
上述四个属性不仅可以读取,还可以赋值。/article/4205990.html
http://stackoverflow.com/questions/3563107/jquery-html-vs-innerhtml
引用资料:
http://stackoverflow.com/questions/3563107/jquery-html-vs-innerhtml
/article/4205990.html
http://harttle.com/2015/10/01/javascript-dom-api.html
DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性。DOM节点有一个
nodeType属性用来表示当前元素的类型,它是一个整数:
Element,元素
Attribute,属性
Text,文本
DOM节点创建最常用的便是document.createElement和
document.createTextNode方法:
varnode1=document.createElement('div'); varnode2=document.createTextNode('helloworld!');
二、DOM查询
//返回当前文档中第一个类名为"myclass"的元素 varel=document.querySelector(".myclass"); //返回一个文档中所有的class为"note"或者"alert"的div元素 varels=document.querySelectorAll("div.note,div.alert"); //获取元素 varel=document.getElementById('xxx'); varels=document.getElementsByClassName('highlight'); varels=document.getElementsByTagName('td'); Element也提供了很多相对于元素的DOM导航方法: //获取父元素、父节点 varparent=ele.parentElement; varparent=ele.parentNode;//只读,没有兼容性问题 varoffsetParent=ele.offsetParent;//只读,找到最近的有定位的父节点。 //没有定位父级时,默认是body;但在IE7以下,如果当前元素没有定位属性,返回body,如果有,返回HTML; //如果当前元素某个父级触发了haslayout,则返回触发了haslayout这个元素。 //获取子节点,子节点可以是任何一种节点,可以通过nodeType来判断 varnodes=ele.children;//标准下、非标准下都只含元素类型,但对待非法嵌套的子节点,处理方式与childNodes一致。 varnodes=ele.childNodes;//非标准下:只包含元素类型,不会包含非法嵌套的子节点。 //标准下:包含元素和文本类型,会包含非法嵌套的子节点。 //获取元素属性列表 varattr=ele.attributes; //查询子元素 varels=ele.getElementsByTagName('td'); varels=ele.getElementsByClassName('highlight'); //当前元素的第一个/最后一个子元素节点 varel=ele.firstChild;//对待标准和非标准模式,如childNods varel=ele.lastChild; varel=ele.firstElementChild;//非标准不支持 varel=ele.lastElementChild; //下一个/上一个兄弟元素节点 varel=ele.nextSibling; varel=ele.previousSibling; varel=ele.nextElementSibling; varel=ele.previousElementSibling;
兼容的获取第一个子元素节点方法:
varfirst=ele.firstElementChild||ele.children[0];
三、DOM更改
//添加、删除子元素 ele.appendChild(el); ele.removeChild(el); //替换子元素 ele.replaceChild(el1,el2); //插入子元素 parentElement.insertBefore(newElement,referenceElement); //克隆元素 ele.cloneNode(true)//该参数指示被复制的节点是否包括原节点的所有属性和子节点
四、属性操作
//获取一个{name,value}的数组 varattrs=el.attributes; //获取、设置属性 varc=el.getAttribute('class'); el.setAttribute('class','highlight'); //判断、移除属性 el.hasAttribute('class'); el.removeAttribute('class'); //是否有属性设置 el.hasAttributes();
innerHTML与outerHTML的区别?
比如对于这样一个HTML元素:<div>content<br/></div>。
innerHTML:内部HTML,
content<br/>;
outerHTML:外部HTML,
<div>content<br/></div>;
innerText:内部文本,
content;
outerText:内部文本,
content;
上述四个属性不仅可以读取,还可以赋值。
outerText和
innerText的区别在于
outerText赋值时会把标签一起赋值掉,另外
xxText赋值时HTML特殊字符会被转义。下图来源于:
jQuery的html()与innerHTML的区别?
jQuery的.html()会调用
.innerHTML来操作,但同时也会
catch异常,然后用
.empty(),
.append()来重新操作。这是因为IE8中有些元素的
.innerHTML是只读的。见:
引用资料:
/article/4205990.html
相关文章推荐
- 字典、数组、JSON之间的转化小demo
- Javascript实现网页水印(非图片水印)
- 搜索框(js)
- javaScript常用工具库
- SuperMap iClient for JavaScript矢量分块图层-地图快速渲染的利器
- 使用ajax上传图片(ajaxfileupload.js)
- js获得本周,本月,本季度的开始日期和结束日期
- js实现按钮重新发送验证码倒计时效果
- JavaScript异步编程
- zepto.js 自定义打包集成其他模块构建流程
- 【HTML&JavaScript】data-* 属性与data( )方法
- JavaScript中eval()函数的使用
- sea.js 学习
- javascript Slip.js实现整屏滑动的手机网页
- 车型数据api 根据车系查询车型数据
- Java与Javascript交互(使用Protobuf协议)
- jsp学习
- javascript巧用eval函数组装表单输入项为json对象的方法
- Js 冒泡事件阻止
- angular js