Dom的一些操作

子元素和子节点,第一个子元素和第一个子节点以及属性操作

通过js获取父级,子级,兄弟元素(包括祖级,孙级);

原生的JavaScript方法:

var a = document.getElementById("dom");
      del_space(a); //清理空格
      var b = a.childNodes; //获取a的全部子节点;
      var c = a.parentNode; //获取a的父节点;
      var d = a.nextSibling; //获取a的下一个兄弟节点
      var e = a.previousSibling; //获取a的上一个兄弟节点
      var f = a.firstChild; //获取a的第一个子节点
      var g = a.lastChild; //获取a的最后一个子节点

这只是一种获取节点,如果节点是文本节点,就还要做判断,可以不可以只获取子元素呢。就是子标签。答案当然是有的
获取子元素

// 获取父元素、父节点
var parent = ele.parentElement;
var parent = ele.parentNode;

// 获取子节点,子节点可以是任何一种节点,可以通过nodeType来判断
var nodes = ele.children;    

// 查询子元素
var els = ele.getElementsByTagName('td');
var els = ele.getElementsByClassName('highlight');

// 当前元素的第一个/最后一个子元素节点
var el = ele.firstElementChild;
var el = ele.lastElementChild;

// 下一个/上一个兄弟元素节点
var el = ele.nextElementSibling;
var el = ele.previousElementSibling;

//返回子元素(不包括文本节点和注释)的个数
var el = ele.childElementCount;

//获得className属性的添加,删除和替换类名
classList属性,
//mydiv元素的所有class属性值,
var el = ele.getElementById("MYdiv").classList
add(value) 将给定的字符串值添加到列表中,如果值存在,不添加
contains(value)表示列表中是否存在给定的值,如果存在返回true,否则返回false
remove(value) 从列表中删除给定的字符串
toggle(value) 如果列表中已经存在给定的值,则删除他,如果列表中没有给定的值,添加他

DOM更改

// 添加、删除子元素
ele.appendChild(el);
ele.removeChild(el);

// 替换子元素
ele.replaceChild(el1, el2);

// 插入子元素
parentElement.insertBefore(newElement, referenceElement);

属性操作

// 获取一个{name, value}的数组
var attrs = el.attributes;

// 获取、设置属性
var c = el.getAttribute('class');
el.setAttribute('class', 'highlight');

// 判断、移除属性
el.hasAttribute('class');
el.removeAttribute('class');

// 是否有属性设置
el.hasAttributes();     

innerHTML与outerHTML的区别?
DOM元素的innerHTML, outerHTML, innerText, outerText属性的区别也经常被面试官问到, 比如对于这样一个HTML元素:<div>content<br/></div>

innerHTML:内部HTML,content<br/>;
outerHTML:外部HTML,<div>content<br/></div>;
innerText:内部文本,content ;
outerText:内部文本,content ;

上述四个属性不仅可以读取,还可以赋值。outerText和innerText的区别在于outerText赋值时会把标签一起赋值掉,另外xxText赋值时HTML特殊字符会被转义。

所有节点都有的最后一个属性是ownerDocumen,该属性指向表示整个文档的文档节点,这种关系表示的是任何节点都属于它所在的文档,任何节点都不能同时存在于两个或更多个文档中,通过这个属性,我们可以不必在节点层次中通过层层回溯到达顶端,而是可以直接访问文档节点。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基本介绍 文档对象模型 (DOM) 是HTML和XML文档的编程接口。它给文档(结构树)提供了一个结构化的表述并且...
    草鞋弟阅读 495评论 0 0
  • 一、样式篇 第1章 初识jQuery (1)环境搭建 进入官方网站获取最新的版本 http://jquery.co...
    凛0_0阅读 3,529评论 0 44
  • 冷落清秋夜意寒,瑟瑟风雨催人眠。 回首初见春风暖,十里桃花竞笑颜。 一朝春尽红颜老,花落人亡不可期。 掩卷细思人间...
    慕雅心阅读 303评论 0 0
  • 我们极力成为别人口中的好人,成为一个村的好娃娃,好后生。我们从来都不知道什么是好,什么是坏,好坏的标准是什么? ...
    黑败丑阅读 228评论 0 0
  • 熟悉的名字, 模糊的记忆。 似有似无, 似梦非梦。 夜里, 微风带了一丝凉意, 而寒意却在心中散开。 ——...
    Andrew_bao阅读 206评论 1 1