DOM的数据结构?
- 树
- 获取元素节点
getElementById(“id”) //通过id获取
getElementsByTagName(“标签名”) //通过标签获取
getElementsByName(“name”) //通过name属性获取
getElementsByClassName(“class”) //通过类名获取
querySelector(“一个选择器”) //通过选择器获取
querySelectorAll(“多个选择器”) //通过选择器获取
- 创建元素节点
createElement("") //创建一个节点
createTextNode("") //创建文本内容
createDocumentFragment() //创建文档片段
createComment("") //创建注释
- 【前端面试---DOM、BOM】操作元素节点
添加节点:appendChild()
替换节点:replaceChild()
插入节点:insertBefore()
删除节点:removeChild()
- attribute是对html标签属性的获取和修改 【针对html】
- property只是一个JS对象的属性的获取和修改【针对js对象】
- navigator.userAgent
- location.href //整个url
- location.protocal //协议
- location.host //域名
- location.pathname //路径
- location.hash //锚点
- location.search //参数部分
- 单次定时:setTimeout()
- 循环定时:setInterval()
- 清除定时器:clearTimeout()和clearInterval()
- IE9+及其它主流浏览器:addEventListener()
- IE6-IE8:attachEvent()
// 事件监听函数
>
addHandler(element,type,handler){
if(element.addEventListener){
element.addEventListener(type,handler,false);
}elae if(element.attachEvent){
element.attachEvent('on'+type,handler);
}else{
element['on'+type] = handler;
}
}
简述事件冒泡流程?
- 依据DOM树形结构向上冒泡
- 向上冒泡
推荐阅读
- 字节面试官告诉你如何面试研发岗
- 前端面试|JS获取嵌套数组对象中的某个key对应的值
- 前端|“寒冬”三年经验前端面试总结(含头条、百度、饿了么、滴滴等)
- 前端面试|new new Foo().getName()面试题解析
- 前端面试|js将数据转成树形结构