DOM操作(由此引申出的知识点非常多)

题目1: elem.children和elem.childNodes的区别?

  • childNodes包括HTML节点,所有属性,文本节点。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。
  • children它只返回HTML节点,甚至不返回文本节点

题目2:如何创建一个元素?如何给元素设置属性?如何删除属性

 var newElement = document.createElement('input');创建
 newElement.setAttribute('name','user');设置
 newElement.removeAttribute('name');删除

题目3:如何给页面元素添加子元素?如何删除页面元素下的子元素?

<ul>
       <li></li>
        <li></li>
</ul>
<script>
 var ulnode = document.getElementsByTagName('ul')[0];
 var li = document.createElement('li');
 var context = document.createTextNode('hello');
 li.appendChild(context);
 ulnode.insertBefore(li,ulnode.childNodes[0]);
</script> 
删除 ulnode.removeChild(li);                                     

注意添加元素时有多种方法,第一种是先造好一个加上去,第二个是先造好了最终把孩子都加起来然后一起加到父节点上

题目4: element.classList有哪些方法?如何判断一个元素的 class 列表中是包含某个 class?如何添加一个class?如何删除一个class?

  • 有add(添加指定的类值)、remove(删除指定的)、item (按索引返回类值)、toggle ()、contains(检查元素中是否有指定的类值)。使用contains方法判断一个元素的class中是否包含某个class。add添加一个class,remove删除一个class。

5 给每个节点绑定时间点击打印对应索引:这个涉及到闭包和作用域的问题,别忘了用let可以破解

6 给每个节点循环加事件太费事,这里应用到事件代理,通过e.target拿到对应的子元素

7 经常出遍历dom树的题目,比如深度优先和广度优先,因为其本质就是idom树

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

推荐阅读更多精彩内容

  • 基本介绍 文档对象模型 (DOM) 是HTML和XML文档的编程接口。它给文档(结构树)提供了一个结构化的表述并且...
    草鞋弟阅读 3,414评论 0 0
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 7,741评论 0 8
  • 题目1: dom对象的innerText和innerHTML有什么区别? innerText是一个可写属性,返回元...
    Taaaaaaaurus阅读 1,501评论 0 1
  • 题目1: dom对象的innerText和innerHTML有什么区别?innerText是一个可写属性,返回元素...
    湖衣阅读 1,339评论 0 0
  • 文/韦剑 林花谢了 红了多久 杨柳岸晓 走了多久 相逢、相知、相聚、相离 这一岁、那一声 藏了多久 这一记、那一瞥...
    韦剑阅读 1,527评论 0 2