DOM操作

2017-08-09  本文已影响0人  peaceChierdo

题目1: dom对象的innerText和innerHTML有什么区别?

test.innerHTML:
  从对象的起始位置到终止位置的全部内容,包括Html标签。
test.innerText:
  从起始位置到终止位置的内容, 但它去除Html标签
test.outerHTML:
  除了包含innerHTML的全部内容外, 还包含对象标签自己。

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

题目3:查询元素有几种常见的方法?ES5的元素选择方法是什么?

  • 查询元素
    getElementById()
    getElementsByClassName()
    getElementsByTagName()
    getElementsByName() //获取有name属性的HTML元素
    (HTMLCollection)
  • ES5
    querySelector()、querySelectorAll() //支持CSS选择器
    (NodeList)

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

  • document.createElement("tagname") 创建文本节点
    document.createTextNode(''textontent') 创建文本节点
    document.createDocumentFragment() 用来生成较复杂的DOM结构,减少渲染次数
  • element.setAttribute("name","value") 设置属性
  • element.removeAttribute("attrName") 删除属性

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

  • element.appendChild() 在元素末尾添加元素
    parentElement.insertBefore(newElement, referenceElement) 在某个元素前添加元素
  • parentNode.removeChild(childNode) 删除子元素
  • parentNode.replaceChild(newChild, oldChild) 替换子元素

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

http://www.runoob.com/jsref/prop-element-classlist.html

  • add(class1, class2, ...) 在元素中添加一个或多个类名。如果指定的类名已存在,则不会添加
  • contains(class) 返回布尔值,判断指定的类名是否存在。
  • item(index) 返回类名在元素中的索引值。索引值从 0 开始。
  • remove(class1, class2, ...) 移除元素中一个或多个类名。注意: 移除不存在的类名,不会报错。
  • toggle(class, true|false) 在元素中切换类名。

题目7: 如何选中如下代码所有的li元素? 如何选中btn元素?

<div class="mod-tabs">
   <ul>
       <li>list1</li>
       <li>list2</li>
       <li>list3</li>
   </ul>
   <button class="btn">点我</button>
</div>
<script type='text/javascript'>
  var ali = document.getElementsByTagName("li")
  var bli = document.querySelectorAll('li')
  var abtn = document.getElementsByClassName('btn')
  var bbtn = document.querySelector('.btn')  
  console.log(ali, bli)
  console.log(abtn)
  console.log(bbtn)
 </script>
上一篇下一篇

猜你喜欢

热点阅读