一些DOM小操作

2017-08-04  本文已影响0人  怎么昵称

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

innerText是一个可写属性,返回元素内包含的文本内容,在多层次的时候会按照元素由浅到深的顺序拼接其内容。

innerText 从起始位置到终止位置的内容, html标签都被转义后保存.

简单场景:如果输入框中有标签的话,可以用innerText转义,获取内容

innerHTML属性作用和innerText类似,但是不是返回元素的文本内容,而是返回元素的HTML结构,在写入的时候也会自动构建DOM。

innerHTML 获取从对象的起始位置到终止位置的全部内容,包括Html标签

参考文

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

children是Element的属性,childNodes是Node的属性,

  1. children:
    非标准的,它返回指定元素的子元素集合。经测试,它只返回HTML节点,甚至不返回文本节点
 <div id="open">
    <h1>这是一张图</h1>
    <img src="" alt="img">
    <button>open</button>
  </div>
  
var open= document.getElementById('open');
var d=open.children;
for(var i=0; i<d.length;i++){
     console.log(d[i])
}
输出:
 <h1>​这是一张图​</h1>​
<img src="" alt=​"img">​
 <button>​open​</button>​
  1. childNodes:
    标准的,返回指定元素的子元素集合,包括HTML属性,所有属性,文本。可以通过nodeType来判断是哪v 种类型的节点
var open= document.getElementById('open');
var d=open.childNodes;
    for(var i=0; i<d.length; i++){
         console.log(d[i])      
    }

 <h1>​这是一张图​</h1>​
"hfhfhfhdhjshdfkshfksh"
 <img src(unknown) alt=​"img">​
 <button>​open​</button>​
节点类型 NodeType
元素element 1
属性attr 2
文本text 3
注释comments 8
文档document 9

补充:
 Node(节点)是DOM层次结构中的任何类型的对象的通用名称,Node有很多类型,如元素节点,属性节点,文本节点,注释节点等,通过NodeType区分,常见的有:

节点类型 NodeType
元素element 1
属性attr 2
文本text 3
注释comments 8
文档document 9

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

document.getElementById()//返回特定的id名的元素
document.getElementByClassName() //返回文档中所有指定类名的元素集合,作为 NodeList 对象。
document.getElementByTagName()//获取所有指定标签的元素
document.getElementByName()//获取所有指定name属性值的元素

ES5 元素选择方式:

document.querySelector() //返回匹配指定条件的第一个元素,,

document.querySelectorAll()//返回符合指定条件的所有元素,得到一个NodeList对象

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

var node= document.createElement(' 标签名称 ');//创建一个html节点

node.setAtrribute('属性名','设置的属性值') //设置属性

node.removeAtrribute('属性名')

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

<div id="open">
   <h1>这是一张图</h1>
   <button>open</button>
 </div>
//div末尾添加一个p标签
var node = document.querySelector('div')//现获取要添加元素的标签
var p= document.createElement('p');//创建一个新的段落元素
 node.appendChild(p)  //添加子元素
输出结果:
<div id="open">
   <h1>这是一张图</h1>
   <button>open</button>
   <p></p>  
 </div>

删除子元素过程:

var node= document.querySelector(div)  //获取要删除子元素的元素
var p= document.getElementByTagName(p)  // 获取删除的元素
node.removeChild(p)  // 删除操作

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

var img= document.querySelector('images');

img.classList() //查看img元素的类名,返回一个数组
img.classList.add('active') //添加类名
img.classList.remove('active') //删除类名
img.classList.contains('active')//是否包含active类名,返回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>

注意: querySelectorAll('参数') //要求参数是字符串

var list= document.querySelectorAll('li') //获取所有li
console.log(list)

var btn1=document.getElementByClaaName('btn')
console.log(btn1)

上一篇 下一篇

猜你喜欢

热点阅读