querySelector()
和querySelectorAll()
,参数都是css
选择器,前者返回符合条件的第一个匹配的元素,若是没有则返回Null
,后者返回符合筛选条件的全部元素集合,若是没有符合筛选条件的则返回空数组。javascript
getElementsByClassName()
返回一个相似数组的对象,包含了全部指定 class
名称的子元素。当调用发生在document对象上时, 整个DOM都会被搜索, 包含根节点,也能够在任意元素上调用。css
document.querySelector('div'); //选择第一个div document.body.querySelector('p')[0]; //body下第一个p标签 document.getElementsByClassName('red test'); //获取全部 class 同时包括 'red' 和 'test' 的元素
class
数量。value
值,若是存在则返回true
,不存在则返回false
。index
为数字(从0开始),索引不在范围内返回null
,不为数字会被转成数字类型再取整数部分,若转换失败返回第一个类名。value
的class
在添加和移除之间切换。classList 属性返回的是一个 DOMTokenList
对象。此属性不兼容IE10如下版本。html
Object.prototype.toString.call(node.classList); //'[object DOMTokenList]'
相对应 className
属性,能够设置或返回元素的 class 。返回的是字符串类型,设置会把原来的 class 值彻底覆盖。语法:node.className = className
。java
<div class='wrap box'></div> let oDiv = document.querySelector('div'); console.log(oDiv.className); //'wrap box' oDiv.className = 'class1'; console.log(oDiv.className); //'class1'
新的HTML5标准容许在普通的元素标签里,嵌入相似data-*
的属性,来实现一些简单数据的存取。它的数量不受限制,而且也能由js
动态修改,也支持CSS
选择器。node
用getAttribute
、setAttribute
存取dataset
。git
<div data-id='10' data-name='box'></div> <script node.getAttribute('data-id'); node.setAttribute('data-name','test'); </script>
经过.dataset
API 存取dataset
。它返回一个对象,能够经过node.dataset.name
的形式新增或修改。github
node.dataset.name = 'test';
加有contenteditable
属性的元素,点击能够编辑。此属性为布尔属性。web
<div contenteditable=true> <p>i am editable</p> <p>i am editable too</p> </div>
localStorage
sessionStorage
。Javascript本地存储小结。segmentfault
Element.scrollIntoView()
方法让当前的元素滚动到浏览器窗口的可视区域内。scrollIntoView MDN数组
参数为一个布尔值,为true
,元素的顶端将和其所在滚动区的可视区域的顶端对齐;若是为false
,元素的底端将和其所在滚动区的可视区域的底端对齐。
element.scrollIntoView(); // 等同于element.scrollIntoView(true)