zoukankan      html  css  js  c++  java
  • DOM基础

    DOM基础

    DOM基础 - 1

    什么是DOM

    ​ DOM实际上就是document,对页面上所有元素的操作都是通过document操作的

    浏览器支持

    浏览器 支持程度
    IE 10%
    Chrome 60%
    FF 99%

    DOM节点

    childNode子节点

    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    		<script>
    			window.onload=function(){
    				var oUl=document.getElementById('ul1');
                    //IE6-8正常
    				alert(oUl.childNodes.length);			//ul有两个li元素,但返回子结点个数却是5
    			}
    		</script>
    	</head>
    	<body>
            <!--ul有两个li元素-->
    		<ul id="ul1">
    			<li></li>
    			<li></li>
    		</ul>
    	</body>
    </html>
    

    通过上面例子,发现ul中只有两个li元素,但返回ul子结点的个数却是5,原因是节点包含以下两种节点

    文本节点: abcdef

    元素节点:   abcdef 

    要想解决这个问题,便要用到接下来要说的nodeType

    nodeType节点类型

    window.onload=function(){
    				var oUl= document.getElementById("ul1");
    				for(var i=0;i<oUl.childNodes.length;i++)
    				{
    					//nodeType==3	->	文本节点
    					//nodeType==1	->	元素节点
    					//alert(oUl.childNodes[i].nodeType);
    					
    					if(oUl.childNodes[i].nodeType==1)
    					{
    						oUl.childNodes[i].style.background='red';
    					}
    				}
    			};
    

    children子节点,只含元素节点(主要)

    window.onload=function(){
    				var oUl= document.getElementById("ul1");
    				alert(oUl.children.length);		//这时children只返回元素节点的个数
    			};
    

    parentNode父节点

    /*例子:点击链接,隐藏整个li*/
    window.onload=function(){
    				var aA= document.getElementsByTagName('a');
    				for(var i=0;i<aA.length;i++)
    				{
    					aA[i].onclick=function(){
    						this.parentNode.style.display='none';
    					}
    				};
    			};
    

    offsetParent 非结构上的父级,而是用来定位的父级

    补充:css内的绝对定位absolute是根据它的父级定位来定位的,如果父级没有定位,则逐级向上查找定位,直到找到body,接下来例子会用到

    /*获取元素在页面上的实际位置*/
    window.onload=function(){
    				var oDiv2= document.getElementById('div2');	
    				alert(oDiv2.offsetParent);			//因为div2定义在div1内,所以返回的是div2的父级div
    			};
    

    DOM基础 - 2

    DOM节点(2)

    首尾子节点

    有兼容性问题

    firstChild,firstElementChild

    lastChile,lastElementChild

    兄弟节点

    有兼容性问题

    nextSibling,nextElementSibling

    previousSibling,previousElementSibling

    操纵元素属性

    元素属性操作

    第一种:oDib,style.display = 'block'

    第二种:oDib,style["display "] = 'block'

    第三种:DOM方式

    window.onload=function(){
    				var oTxt=document.getElementById('txt1');
    				var oBtn=document.getElementById('btn1');
    				
    				oBtn.onclick=function(){
    					//oTxt.value='abcd';
    					//oTxt['value']='abcd';
                        
                          //DOM方法,setAttribute,第一个参数是要设置的属性名称,第二个参数是属性值
    					oTxt.setAttribute('value','hello world')
    				};
    			};
    

    DOM方式操作元素属性

    获取:getAttribute(名称)

    设置:setAttribute(名称,值)

    删除:removeAttribute(名称)

    DOM元素灵活查找

    用className选择元素

    如何用className选择元素

    选出所有元素

    通过className条件筛选

    封装成函数

    /*通过某class来修改样式,第一个参数为父节点,第二参数为classname*/
    function getByClass(oParent,sClass)
    			{
    				var aResult=[];
    				var aEle=oParent.getElementsByTagName('*');		//css中的通配符,代表所有标签
    				for(var i=0;i<aEle.length;i++)
    				{
    					if(aEle[i].className==sClass)
    					{
    						aResult.push(aEle[i]);
    					}
    				}
    				return aResult;
    			}
    
  • 相关阅读:
    自己设计大学排名-数据库实践
    自己设计大学排名-数据库实践
    自己设计大学排名-数据库实践
    自己的第一个网页
    类和正则表达(自动更正,和代数运算)
    第一个爬虫和测试
    第一个爬虫和测试
    科学计算和可视化
    数据库分表后如何处理事务问题
    jquery下滑到一定高度后,顶部固定
  • 原文地址:https://www.cnblogs.com/potatolulu/p/12968639.html
Copyright © 2011-2022 走看看