Javascript的知识整理(11)
自定义属性,节点操作
Dom 树
思维导图
自定义属性
- 在页面暂时保存数据而不是数据库
- 规定自定义属性以
data-
开头,自定义属性 - h5新增获取
属性.dataset.(要获取的属性)
,必须以data开头 - 如果是list-index-name 使用新特性时获取采用驼峰命名法
节点操作
- 兄弟关系和父子关系,层次关系(node)
- nodeType(节点类型),nodeName(节点名称),nodeValue(节点值)
- 元素节点nodeType=1,属性为2,文本,空格换行等等为3
- 父亲节点
parentNode
找不到父节点返回为null
,返回的是最近的父元素 - 孩子节点
childNodes
得到的所有节点包括元素节点文本节点等等,一般不使用childNodes,使用非标准的parentNode.children
可获取所有的子元素 firstchild/lastchild
获取的是第一个节点文本节点或者元素节点firstElementChild/last
返回的是第一个子元素节点(兼容性问题)
查看实例
1 | <ul> |
兄弟节点
nextSibling
下一个兄弟节点,nextElementSibling
- 和父亲节点类似,
previousELementSibling
上一个元素节点
添加节点
node.appendChild(child)
node父级 child是子级- 创建元素节点 document.createElement(‘元素’)
- node.insertBefore(child,指定元素)
实例化操作
- 演示站点 【第一屏】
- 大量使用节点,比如节点的增加与删除等等
删除节点
- 父元素.removeChild[索引号]
disabled
禁用按钮- 阻止链接跳转,
javascript:void(0);
或者javascript:;
复制节点
- 括号为空或者里面时false 浅拷贝,只复制标签不复制内容
- 括号里面为true,深拷贝,复制标签及其里面的内容
动态创建表格
- 使用双循环,类似于冒泡排序,一个循环控制行,一个循环控制列
- 使用for..in 遍历数组属性,属性值
- 巧妙使用删除节点实现整行或者整列删除
查看实例
1 | <style> |
创建元素
- document.write(‘’),如果页面文档流加载完毕,在调用后页面重绘效果不好
- innerHTML 创建多个元素时效率会低一些(采取拼接字符串),采取数组时效率最高
- arr.push(‘’) 在转换为arr.join(‘’)字符串
- document.createElement(‘’) 创建多个元素时效率较第二种高,使用数组转化时效率最高
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Harry の 心 阁!
评论