操作元素 H5自定义属性 节点操作

排他思想

如果有同一组元素,我们想要某一个元素实现某种样式,需要用到循环的排他循环思想算法 

1.所有元素全部清楚样式

2.给当前元素设置样式  顺序不能颠倒

鼠标经过事件    onmouseover

鼠标离开事件    onmouseout

自定义属性操作

获取元素的属性值

element.属性   //获得元素的属性值

element.getAttribute ( ' 属性 ' )    //获得程序员自己新定义的属性

设置元素的属性值

element.属性 = '值'

element.setAttribute (' 属性 ', ' 值 ' )  //设置程序员自己新定义的属性

移除属性

element.removeAttribute( ' 属性' )

H5自定义属性标准 

data-开头作为属性名并且赋值

H5获取自定义属性的方法   //考虑兼容性
element.dataset.属性  或 element.dataset[ ' 属性名' ]  //只能获取data开头的

如果自定义属性里面有多个-链接的单词,我们获取的时候采取  驼峰命名法

节点操作

节点由nodeType(节点类型) nodeName(节点名称) nodeValue(节点值)

nodeType

元素节点 nodeType =1   //重点

属性节点 nodeType=2

文本节点 nodeType=3 (文本节点包含文字,空格, 换行等)

父节点 元素名.parentNode 

   //得到的是离元素最近的父级节点(亲爸) 如果找不到父节点 就返回 null

子节点 元素名.childNodes //不经常使用

如果只想获得里面的元素节点  需要专门处理 一般不使用

子节点获取

元素名.children  //非标准,但经常使用

元素名.firstchild 返回第一个子节点 不管是文本节点还是元素节点

元素名.firstElementchild 返回第一个元素子节点  //考虑兼容性

元素名.lastchild 返回最后一个子节点 不管是文本节点还是元素节点

元素名.lastElementchild  返回最后一个子节点

实际开发 返回第一个元素子节点 返回最后一个子节点

元素名.children[ 0 ]  返回第一个子节点

元素名.children [ children.length-1 ] 返回最后一个子节点

兄弟节点

元素名.nextSibling  返回下一个兄弟节点 包括元素节点 文本节点等

元素名.nextElementSibling  返回下一个兄弟元素节点

元素名.previousSibling  返回上一个兄弟节点 包括元素节点 文本节点等

元素名.previousElementSibling 返回上一个兄弟元素节点

不考虑兼容问题 要封装函数


 

创建节点

document.createElement( ' 节点名 ' )

添加节点

父级元素名.appendChild(子级)  //在父类后面追加元素

父级元素名.insertbBefore(子级,指定元素位置)

删除节点

父节点名称.removechild(child)

复制节点

元素名称.cloneNode ()

参数

括号为空,或里面是false 浅拷贝  只复制标签不复制里面的内容

括号内容为true 深拷贝 复制标签还有里面子节点的内容

三种动态创建元素区别

write

innerHTML      

直接写入很慢

内容写入某个DOM节点,不会导致页面全部重绘

创建多个元素效率更高  不要拼接字符串,采取数组形式拼接  结构稍微复杂,但快捷

createElement    相比innerHTML 快  创建多个元素效率稍微低一点,但是结构更清晰

防止链接跳转  javascript:; 

发布了48 篇原创文章 · 获赞 3 · 访问量 864

猜你喜欢

转载自blog.csdn.net/procul/article/details/105155723