jQuery和原生JavaScript操作方法总结
DOM元素的获得
| 原生中获取的方法 | jQuery | 
|---|---|
| getElementById(“”) IE6 | $(“#box p span” ) | 
| getElementsByTagName(“”) IE6 | |
| getElementsByName(“”) IE8 | |
| getElementsByClassName(“”) IE8 | |
| querySelector() | |
| querySelectorAll() | 
注意:原生中的方法不是document的方法,而是所有nodeType为1的节点都有的方法。
jQuery3使用querySelectorAll()得到所有元素节省了空间,使用正则和递归获得所有节点。
- 特别注意:对于form表单,加油name属性的,里面所有控件都加name属性,可以直接document打点获得。 document.myForm可以得到属性值为myform的表单,其中的控件,可以通过document.myForm.age方式获得。
 
DOM元素的节点关系
| 原生中节点关系属性(不是方法) | jQuery中丰富了节点关系 | 
|---|---|
| childNodes | parent() | 
| parentNode | parents() | 
| firstChlid | closest() | 
| lastChild | parentUntil() | 
| previousSibling | children() | 
| nextSibling | find() | 
| siblings() | |
| prev() | |
| prevAll() | |
| next() | |
| nextAll() | 
DOM元素的创建
| 原生 | jQuery中节点创建 | 
|---|---|
| createElement() | $( ) | 
| innerHTML() | parents() | 
$( ) 如果函数中没有< >就认为传入的是选择器;如果有< >则命令$创建孤儿节点。
原生中创建节点之后,必须添加到已有节点上才能生效,添加方法有
- appendChild()
 - insertBefore()
 
insertBefore第二个参数是标杆,通常是第一个元素。insertBefore实际上要选择一个标杆,插入到这个标杆的前面,但是所有程序员都习惯把标杆设为第一个子元素。在第一个子元素之前插入,不就是插入到现有儿子之前。 jQuery中创建节点之后同样也要添加到已有节点上,添加方法有:
- append()
 - appendTo()
 - prepend()
 - prependTo()
 - after()
 - insertAfter()
 - before()
 - insertBefore()
 - $("p").wrap("<div></div>”);
 - $("p").wrapAll("<div></div>");
 
原生中创建三步走:
- 创建节点 : var nli = document.createElement(“li”);
 - 添加内容 : nli.innerHTML = “something”;
 - 添加到DOM树上 : 两种方法:父元素.appendChild() 或者 父元素.insertBefore(nli , 标杆)
 
原生中的innerHTML可以实现添加的功能,只要将复杂DOM结构变为join字符串形式,放到innerHTML中作为添加部分。
DOM元素的删除
- 原生方法
 
removeChild() 必须是父节点删除子节点,不能自己删除自己
replaceChild(孤儿节点,被替换节点)
- jQuery中元素的删除
 
remove() 表示删除自己
empty() 表示清空,等价于innerHTML = “”
replaceAll(),replaceWith()
DOM元素位置的变化
原理很简单:一个DOM元素只能在DOM树有一个位置,如果它再次上树,则会移动位置。
appendChild( )原理是先将元素从自己的父级上删除,再加到新的父节点上去。
DOM元素的克隆
- 原生是cloneNode()方法,jQuery叫做clone()。
 
原生如果要克隆元素的所有内部元素,要加true参数(深克隆)。 oDiv.cloneNode(true),得到的是孤儿节点,继续上树。
- jQuery中不能更改是否要克隆内部元素,一定是克隆的。 $().clone().appendTo();
 
作者:ACodingIceBear
链接:https://juejin.im/post/5a3c77c8f265da43347018a9
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。






