parentElement——>元素父节点(IE不兼容)
children——>元素子节点
firstElementChild——>第一个元素子节点(IE不兼容)
lastElementChild——>最后一个元素子节点(IE不兼容)
nextElementSibling/previousElementSlibling——>后/前一个元素节点(IE不兼容)
节点的四个属性,
nodeName //元素的标签名,以大写的形式表示,只读
nodeValue //Text节点或Comment节点
nodeType //该节点的类型,只读
attributes //Element节点的属性集合
Dom操作,一些(创建,插入,删除,替换)
创建
document.creatElement()//创建一个元素节点,并未放在页面中
document.creatTextNode()//创建一个文本节点,并未放在页面中
document.creatComment()//创建一个注释节点
插入
PARENTNODe.appendChild()//剪切插入创建好的节点
PARENTNODe.insertBefore(a,b)//将b插入到a中
删除
parent.removeChild()//剪切删除
child.remove()//直接销毁删除
替换
parent.replaceChild(new,arigin)
Element的一些属性
innerHTML //改变HTML页面中的内容
div.innerHTML = “213”//覆盖页面中的内容
innerHTML +=“213”//追加页面中的内容
innerText //(火狐不兼容)取文本内容,并赋值时会覆盖文本结构
Element的一些节点方法
setAttribute(‘class’,‘ab’)//前面代表选择器,后面代表名称
get.Attribute(‘’)//得到页面中的选择器
下面是关于涉及到dom的一些小例子。
/封装函数,返回元素e的第n层祖先元素节点
function retPatrent(elem,n){
while(elem && n){
elem = elem.parentElemt;
n–;
}
renturn elem;
}
//封装myChild的方法
Element.prototype.myChild = function(){
var child = this.childNodes;
var len = child.length;
var arr = [];
for(i = 0; i < len ; i++){
if(arr[i].nodeType ==1){
arr.push(child[i]);
}
}
}
最后
在面试前我花了三个月时间刷了很多大厂面试题,最近做了一个整理并分类,主要内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。
包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。
-
HTML5新特性,语义化
-
浏览器的标准模式和怪异模式
-
xhtml和html的区别
-
使用data-的好处
-
meta标签
-
canvas
-
HTML废弃的标签
-
IE6 bug,和一些定位写法
-
css js放置位置和原因
-
什么是渐进式渲染
-
html模板语言
-
meta viewport原理