element .attributes 返回一个元素的属性集合,{onclick:{},type:’xxx’}
element .childNodes 返回元素的一个子节点的数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <body > <p id ="demo" > 单击“按钮”获取有关身体元素的子节点的信息</p > <button onclick ="myFunction()" > 点我</button > <script > function myFunction ( ){ var txt="" ; var c=document .body .childNodes ; console .log (c); } </script > <p > <strong > 注意:</strong > 空格内元素看作是文本,文本是节点。</p > </body > /* 输出结果 [p#demo,text,button,text,script,p] */
element .classList 返回元素的类名,作为 DOMTokenList 对象。[‘one’,’two’,’one two’] 最后一个结果是合成 的className
element .cloneNode() 克隆某个元素,当需要克隆整个ul>li时,需要遍历数据,一个个克隆
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <body > <ul id ="ul" > <li > 1</li > <li > 2</li > <li > 3</li > <li > 4</li > <li > 5</li > </ul > <ul id ="ul2" > </ul > </body > </html > <script > var copyLi = document .querySelector ("#ul" ).children ; for (let i = 0 , length = copyLi.length ; i < length; i++) { var oli = copyLi[i].cloneNode (true ); document .querySelector ("#ul2" ).appendChild (oli); } </script >
element .contentEditable 设置或返回元素的内容是否可编辑
element .firstChild 返回元素的第一个子节点
element .lastChild 返回的最后一个子节点
element .getAttribute() 返回指定元素的属性值
element .hasAttribute() 如果元素中存在指定的属性返回 true,否则返回false。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <html > <head > <meta charset ="utf-8" > <title > 菜鸟教程(runoob.com)</title > </head > <body > <p id ="demo" > 点击按钮查看按钮元件具有一个onclick属性。</p > <button onclick ="myFunction()" class ="one" > 点我</button > <script > function myFunction ( ){ var btn=document .getElementsByTagName ("BUTTON" )[0 ]; var x=document .getElementById ("demo" ); x.innerHTML =btn.hasAttribute ("class" ); }; </script > <p > IE 8 及更早版本不支持 hasAttribute 方法。</p > </body > </html >
element .hasAttributes() 如果元素有任何属性返回true,否则返回false。
element .hasFocus() 返回布尔值,检测文档或元素是否获取焦点
element .insertBefore() 现有的子元素之前插入一个新的子元素
1 父元素.insertBefore(需要插入的元素,XX元素之前)
element .isContentEditable 如果元素内容可编辑返回 true,否则返回false
element .isEqualNode() 检查两个元素是否相等
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <body > <button onclick ="myFunction('myList1','myList2')" > 比较列表1和列表2</button > <button onclick ="myFunction('myList1','myList3')" > 比较列表1和列表3</button > <p id ="demo" > 单击按钮比较两个列表中的<em > 第一项</em > </p > 列表 1: <ul id ="myList1" > <li > Water</li > <li > Milk</li > </ul > 列表 2: <ul id ="myList2" > <li > Coffee</li > <li > Tea</li > </ul > 列表 3: <ul id ="myList3" > <li > Water</li > <li > Fire</li > </ul > <script > function myFunction (x,y ){ var item1=document .getElementById (x).firstChild ; var item2=document .getElementById (y).firstChild ; var x=document .getElementById ("demo" ); x.innerHTML =item1.isEqualNode (item2); } </script > <p > <strong > 注意:</strong > Internet Explorer 8及之前版本不支持isEqualNode 方法。</p > </body >
element .nextElementSibling 返回指定元素之后的下一个兄弟元素(相同节点树层中的下一个元素节点)。
1 2 3 4 5 6 7 8 9 10 11 <ul > <li id ="item1" > 咖啡 (第一项)</li > <li id ="item2" > 西瓜 (第二项)</li > </ul > <p id ="demo" > </p > <script > function myFunction ( ) { var x = document .getElementById ("item1" ).nextElementSibling .innerHTML ; document .getElementById ("demo" ).innerHTML = x; } </script >
element .previousElementSibling 返回指定元素的前一个兄弟元素(相同节点树层中的前一个元素节点)
element .removeAttribute() 从元素中删除指定的属性
element .replaceChild() 替换一个子元素。父元素.replaceChild(新元素,旧元素)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <ul id ="myList" > <li > Coffee</li > <li > Tea</li > <li > <span > Milk</span > </li > </ul > <p id ="demo" > 单击按钮替换列表中的第一项。</p > <button onclick ="myFunction()" > 点我</button > <script > function myFunction ( ){ var textnode=document .createTextNode ("Water" ); var node = document .createElement ('li' ); node.appendChild (textnode); var item=document .getElementById ("myList" ).children [0 ]; document .getElementById ("myList" ).replaceChild (node,item); } </script >
js实现拖拽交换位置效果参考 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 <style> *{ margin :0 ; padding : 0 ; } .box { width :1200px ; background-color : #eee ; margin :0 auto; } .box :after { content :'' ; display : block; clear : both; } .box >div { height : 200px ; width : 300px ; float : left; cursor : pointer; user-select : none; transition : all .5s ; position :relative } .box >div .active :after { content : '插入之前' ; display : block; width : 50% ; height : 100% ; background-color : rgba (0 ,0 ,0 ,.3 ); position : absolute; left : 0 ; top : 0 ; } .red { background-color : red; } .blue { background-color : blue; } .dark { background-color : darkcyan; } .saddle { background-color :saddlebrown } </style>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 <body > <div class ="box" > <div draggable ="true" class ="red" > 1</div > <div draggable ="true" class ="blue" > 2</div > <div draggable ="true" class ="dark" > 3</div > <div draggable ="true" class ="saddle" > 4</div > </div > </body > </html > <script > (function ( ){ var current = null ,index=0 ; var oBox = document .querySelector (".box" ); var oDiv = oBox.getElementsByTagName ("div" ); for (let i=0 ,length = oDiv.length ;i<length;i++){ oDiv[i].ondragstart = function ( ){ current = this ; index = i; } oDiv[i].ondragover = function ( ){ event.preventDefault (); if (!this .classList .value .includes ('active' ) && this !==current){ this .className +=" active" ; } } oDiv[i].ondragleave = function ( ){ this .className = this .classList [0 ]; } oDiv[i].ondrop = function ( ){ if (this && current){ oBox.insertBefore (current,this ); this .className =this .classList [0 ]; } } } })(); </script >