js dom学习
创建dom元素
var oLi = document.creteElement('li'); //创建li
var aLi = oUl.getElementsByTagName('li');
oLi.innerHTML = oTxt.value
oUl.appendChild(oLi)
父节点.insertBefore(子节点,谁之前)
oUl.insertBefore(oLi,aLi[0]) 如果一个都没有就会出错
if(aLi.length==0)
{
oUl.appendChild(oLi)
}else{
oUl.insertBefore(oLi,aLi[0])
}
window.onload = function()
{
var oUl = document.getElementById("ul1");
var aLi = oUl.getElementsByTagName('li');
var oBtn = document.getElementById('btn1');
var oTxt = document.getElementById('txt');
oBtn.onclick = function()
{
var oLi = document.createElement('li');
oLi.innerHTML = oTxt.value;
if(aLi.length>0)
{
oUl.insertBefore(oLi,aLi[0]);
}else{
oUl.appendChild(oLi);
}
}
}
删除 removeChild(子节点)
oUl.remove(this.parentNode)
<script>
window.onload = function()
{
var oUl = document.getElementById("ul1");
var aLi = oUl.getElementsByTagName('li');
var oA = oUl.getElementsByTagName('a');
for(var i=0;i<oA.length;i++)
{
oA[i].onclick = function(){
oUl.removeChild(this.parentNode)
}
}
}
</script>
文档碎片,提高文档效率的(理论上)
new Date().getTime();
时间戳
createDocumentFragment
实际上还不如之前的那种
dom1 dom2
火狐是最标准
dom的childNodes 是会包含txt文本节点
nodeType 节点类型 配合使用
3 文本节点
1 元素节点 标签节点
<script>
window.onload = function(){
var oUl = document.getElementById('ul1');
for(var i=0;i<oUl.childNodes.length;i++)
{
if(oUl.childNodes[i].nodeType == 1)
{
oUl.childNodes[i].style.background = "red"
}
}
}
</script>
children 兼容版本的childNodes
<script>
window.onload = function(){
var oUl = document.getElementById('ul1');
for(var i=0;i<oUl.children.length;i++)
{
oUl.children[i].style.background = "red"
}
}
</script>
父节点
parentNode
<script>
window.onload = function(){
var oA = document.getElementsByTagName('a');
for(var i=0;i<oA.length;i++)
{
oA[i].onclick = function(){
this.parentNode.style.display="none";
}
}
}
</script>
offsetParent 定位的父集
firstChild 火狐下用
firstElementChild
lastChild
var oFirst = oUl.firstElementChild || oUl.firstChild
兄弟节点
nextSibling nextElementSibling
prviousSibling
操作元素属性:
通过id操作 document.getElementById
dom方式操作
otxt.setAttribute('value',"22");
getAttribute('id')
removeAttribute
用className 选择元素
document.getElementsByClassName
var getElementsByClass = function(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
js dom学习的更多相关文章
- JS DOM学习笔记
1.window对象代表当前浏览器窗口 2.使用window对象的属性.方法的时候可以省略window.例如:window.alert("hello")一般写成alert(&quo ...
- Js dom 学习
节点类型 文档节点: 一棵DOM树的顶端是文档节点,它呈现为整个页面(相当于document对象),当需要访问任何元素.属性或文本节点时,都需要通过文档节点来进行导航.(document.) 元素节点 ...
- js再学习笔记
#js再学习笔记 ##基本 1.js严格区分大小写 2.js末尾的分号可加,也可不加 3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var ...
- Ext JS 6学习文档–第1章–ExtJS入门指南
Ext JS 入门指南 前言 本来我是打算自己写一个系列的 ExtJS 6 学习笔记的,因为 ExtJS 6 目前的中文学习资料还很少.google 搜索资料时找到了一本国外牛人写的关于 ExtJS ...
- JS Dom节点操作demo!
通过黑马课程的学习,在这里分享一个js Dom中节点操作的小练习 需求:使用js创建一个4*3的表格table. onload = function(){ function c(tagName){ r ...
- vue.js的学习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Ext JS 6学习文档-第8章-主题和响应式设计
Ext JS 6学习文档-第8章-主题和响应式设计 主题和响应式设计 本章重点在 ExtJS 应用的主题和响应式设计.主要有以下几点内容: SASS 介绍和入门 主题 响应式设计 SASS 介绍和入门 ...
- Ext JS 6学习文档-第6章-高级组件
Ext JS 6学习文档-第6章-高级组件 高级组件 本章涵盖了高级组件,比如 tree 和 data view.它将为读者呈现一个示例项目为 图片浏览器,它使用 tree 和 data view 组 ...
- JS继续学习记录(一)
JS继续学习记录(一) 总感觉自己的js code写的还算可以,但是又深知好像只知道一些皮毛,所以打算仔细记录一下js晋级学习过程,日日往复 先记录一下自己目前对js的了解吧(20180828) js ...
随机推荐
- 24-[模块]-re
1.引入re 请从以下文件里取出所有的手机号 姓名 地区 身高 体重 电话 况咏蜜 北京 171 48 13651054608 王心颜 上海 169 46 13813234424 马纤羽 深圳 173 ...
- ubuntu 图形化界面 gui 桌面版 root登录 sorry,that didn't work.please try again! 抱歉,认证失败。请重试
出现这种问题,用下面的方法就行了 https://jingyan.baidu.com/article/bad08e1e224b2709c85121f1.html 而且我发现,因为我用的是英文版的ubu ...
- 如何优化mysql查询速度
1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉 ...
- SQL 上线平台(内含全部完整资料)
为了让 DBA 从日常繁琐的工作中解放出来,通过 SQL 自助平台,可以让开发自上线,开发提交 SQL 后就会自动执行并返回执行结果,无需 DBA 的再次审核,从而提升上线效率,有利于建立数据库开发规 ...
- MySQL ZIP Archive 5.7.17 安装方法
1.下载 2.解压缩 3.创建/修改配置文件 在MySQL安装目录下,新建my.ini,内容如下参考 [mysql] # 设置mysql客户端默认字符集 default-character-set=u ...
- Appium+python自动化2-环境搭建(下)
上一篇android测试开发环境已经准备好, 接下来就是appium的环境安装了.环境安装过程中切勿浮躁,按照步骤一个个来. 环境装好后,可以用真机连电脑,也可以用android-sdk里面的模拟器( ...
- 监控与管理-SpringBoot
在微服务架构中,我们将原本庞大的单体系统拆分成多个提供不同服务的应用. 虽然 各个应用的内部逻辑因分解而得以简化,但是由于部署应用的数量成倍增长,使得系统的 维护复杂度大大提升. 对于运维人员来说,随 ...
- 最优方向法(MOD)
算法描述 求解模型: \[\min\sum\limits_i\|x_i\|_0 \quad \mathrm{s.t.} \; \|Y-DX\|^2_F \leq \varepsilon\] 或 \[\ ...
- Java 的 java_home, path, classpath
java_home: 指定 jdk 的安装目录. 第三方软件 Eclipse / Tomcat 在 java_home 指定的目录下查找安装好的 jdk. path: 配置 jdk 的安装目录.在命令 ...
- Notes of Scrum Meeting(2014/11/2)
Notes of Scrum Meeting (2014/11/2) 软件工程项目组Sevens开始项目之后的第一次Scrum Meeting报告 会议时间:2014年11月2日 20:00—20: ...