JS学习笔记(02)——节点对象
2015-10-17 01:35
615 查看
window对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>01</title> <script> // window.alert('haha'); // window.confirm('确定吗?'); console.log(window.navigator.cookieEnabled); console.log(window.location); // window.location.href = 'http://www.google.fr'; </script> </head> <body> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>01</title> <script> console.log(window.history); console.log(window.screen.width); console.log(window.screen.height); alert(window.document); </script> </head> <body> <input type="button" value="前进" onclick="javascript:window.history.forward()"> <input type="button" value="后退" onclick="javascript:window.history.back()"> </body> </html>
加不加var
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>01</title> <script> window.str = 'union'; function t1(){ // var str = 'china'; function t2(){ // var str = 'Japan'; str = 'Japan'; //不加var,赋值过程,加var,声明一个局部变量 alert(str); } t2(); } t1(); </script> </head> <body> </body> </html>
JS读取改变对象属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> div{ width: 300px; height: 300px; } #test1{ background: green; } #test2{ background: red; } </style> <script> function ch(){ var div = document.getElementById('test1'); div.id = 'test2'; } </script> </head> <body> <h1>特效是什么</h1> <div id="test1" onclick="ch();"></div> </body> </html>
找对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <h1>关键是找对象</h1> <div id = "test1"> <p>p1</p> <p>p2</p> <p>p3</p> </div> <div class = "test2">class test2</div> <input type="text" name="username" id = "" value= "poly"> </body> <script > //用id来查询,返回值是对象 console.log(document.getElementById('test1')); //用标签来查询,返回值是对象的集合,即使只找到一个对象,也包装成集合(数组)返回 ps = document.getElementsByTagName('p'); ps[1].style.background = 'green'; //对于扁担元素可以用name来查询,返回值是对象集合 alert(document.getElementsByName('username')[0].value); document.getElementsByName('username')[0].value = 'lucy'; //按照类名查找,返回对象集合 document.getElementsByClassName('test2')[0].style.background = 'gray'; //找子节点 alert(document.getElementById('test1').childNodes.length); //空白符,换行都看成一个节点 alert(document.getElementById('test1').children.length); //children非标准属性,但兼容很好,他不包含空白节点 document.getElementsByTagName('p')[2].parentNode.style.border='1px solid'; </script> </html>
注意:
1.在
<div class="main">中操作class属性用
divobj.classname。
2.如果css属性带有横线,如border-top-style,则把横线去除,并把横线后面的首字母大写。
3.放在标签里的style的css属性才能被找到。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .test1{ background: green; } .test2{ background: red; } </style> </head> <body> <div class="test1" onclick='t();' style="width: 300px;height: 300px;border-bottom: 1px solid;"> 点击div,使其背景色红绿交替 宽高增加5px 下边框增粗1px; </div> </body> <script> function t(){ var div = document.getElementsByTagName('div')[0]; if(div.className.indexOf('test1') >= 0 ){ div.className = 'test2'; } else { div.className = 'test1'; } div.style.width = parseInt(div.style.width) + 5 +'px'; div.style.height = parseInt(div.style.height) + 5 +'px'; div.style.borderBottomWidth = parseInt(div.style.borderBottomWidth) + 1 +'px' ; } </script> </html>
通过函数读取当前的style
此种方法可以取得<style></style>中的css属性。
window.getComputedStyle(obj, 伪元素)
参数说明:
第一个参数为要获取计算后的样式的目标元素
第二个参数为期望的伪元素,如’after’等,一般设为null
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> div { width: 300px; height: 300px; border-bottom: 1px solid black; } .test1{ background: green; } .test2{ background: red; } </style> </head> <body> <div class="test1" onclick="t(); "> 点击div,使其背景色红绿交替 宽高增加5px 下边框增粗1px; </div> </body> <script> function getStyle(obj , attr){ return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj , null)[attr]; // 这两个对象是只读,要想改还是得通过obj.style } function t(){ var div = document.getElementsByTagName('div')[0]; if(div.className.indexOf('test1') >= 0 ){ div.className = 'test2'; } else { div.className = 'test1'; } // alert(getStyle(div, 'width')); // return; div.style.width = parseInt(getStyle(div, 'width')) + 5 +'px'; div.style.height = parseInt(getStyle(div, 'height')) + 5 +'px'; div.style.borderBottomWidth = parseInt(getStyle(div, 'borderBottomWidth')) + 1 +'px' ; } </script> </html>
删除对象
步骤:1.找到对象
2.找到他的父对象parentObj
3.parentOb.removechild(子对象)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> function del(){ //可以在此处放script,因为一般都在页面加载完之后才会去点 var lis = document.getElementsByTagName('li'); var lastli = lis[lis.length-1]; lastli.parentNode.removeChild(lastli); } </script> </head> <body> <input type="button" value="删除最后一个li" onclick = "del();"> <ul> <li>春</li> <li>夏</li> <li>秋</li> <li>冬</li> </ul> </body> </html>
创建对象
步骤:1.创建对象
2.找到父对象parent.Obj
3.parentObj.addChild(对象)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> function add(){ var li = document.createElement('li'); var txt = document.createTextNode('冬'); li.appendChild(txt); // 把文本节点写进li节点里 document.getElementsByTagName('ul')[0].appendChild(li); } </script> </head> <body> <h1>创建节点</h1> <input type="button" value="增加" onclick = "add();"> <ul> <li>春</li> <li>夏</li> <li>秋</li> </ul> </body> </html>
暴力操作节点
innerHTML:代表节点内的内容,能读能写不是一个w3c规定的标准,但各浏览器支持的很好。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <h1>创建节点</h1> <input type="button" value="添加春夏秋" onclick = "add3();"> <input type="button" value="添加冬" onclick = "add2();"> <ul> </ul> <script> function add3(){ var ul = document.getElementsByTagName('ul')[0]; ul.innerHTML = '<li>春</li><li>夏</li><li>秋</li>'; } function add2(){ var ul = document.getElementsByTagName('ul')[0]; // alert(ul.innerHTML); ul.innerHTML += '<li>冬</li>'; } </script> </body> </html>
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- IE8开发人员工具教程(二)
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- PowerShell中执行Javascript的方法示例
- javascript asp教程第六课-- response方法
- javascript asp教程More About Recordsets