Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DOM操作 #47

Open
yym-yumeng123 opened this issue Sep 9, 2017 · 0 comments
Open

DOM操作 #47

yym-yumeng123 opened this issue Sep 9, 2017 · 0 comments

Comments

@yym-yumeng123
Copy link
Owner

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

  • element.innerText
    • 节点及其后代节点的文本内容
    • ff不支持
  • element.innerHTML
    • 节点的html内容
      • 内存泄露
      • 安全问题
  • `element.textContent
    • 节点及其后代节点的文本内容`
id.innerHTML = "<h1>我是标题</h1>"  //把字符串作为html放到字符串里
id.innerText = "Hello World"  //把字符串作为文本放进去

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

  • children是Element的属性,childNodes是Node的属性
    • children:子元素列表(HTMLCollection)
      • children 属性,非标准的,它返回指定元素的子元素集合。经测试,它只返回HTML节点,甚至不返回文本节点。且在所有浏览器下表现惊人的一致。和childNodes 一样,在Firefox下不支持()取集合元素。因此如果想获取指定元素的第一个HTML节点,可以使用children[0]来替代上面的getFirst函数。需注意children在IE中包含注释节点。
    • childNodes:子元素列表(NodeList)
      • childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。

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

  • getElementById()
    • 返回匹配指定ID属性的元素节点
  • getElementsByTagName()
    • 返回所有指定标签的元素(搜索范围包括本身)。返回值是一个HTMLCollection对象
  • getElementsByClassName()
    • 返回一个类似数组的对象(HTMLCollection类型的对象),包括了所有class名字符合指定条件的元素(搜索范围包括本身)
  • getElementsByName()
    • 用于选择拥有name属性的HTML元素
  • ES5的方法:
    • querySelector()
    • querySelectorAll()

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

创建元素

  • createElement()
    • createElement方法用来生成HTML元素节点。
  • createTextNode()
    • createTextNode方法用来生成文本节点,参数为所要生成的文本节点的内容。

属性设置

  • getAttribute()
    • 用于获取元素的attribute值
  • setAttribute()
    • 方法用于设置元素属性
ele.setAttribute()
  • romoveAttribute()删除属性

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

添加元素

  • appendChild()

删除元素

  • removeChild()

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

  • element.classList.add('')//添加
  • element.classList.item()//index 可以返回class里面包含的class
  • element.classList.remove('')//删除
  • element.classList.contains('')// 包含就是true / 没有则返回flase
  • element.classList.toggle('')// 有则删除返回false,没有则加上返回true

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

<div class="mod-tabs">
   <ul>
       <li>list1</li>
       <li>list2</li>
       <li>list3</li>
   </ul>
   <button class="btn">点我</button>
</div>

var li = document.getElementsByTagName("li")
var li = document.querySelectorAll("li")

var btn = document.getElementsClassName("btn")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant