通过节点层次关系获取节点:(重要)
当节点既没有id,也没有name,通过节点当中的关系,是另一种获取节点方式
<!--
通过节点关系获取节点
关系:
1.父节点:parentNode,一个父节点
2.子节点:childNodes ,直接后代节点集合
3.兄弟节点:比较少用,因为没有浏览器的解析方式,顺序就不一样
上一个兄弟节点:previousSibing
下一个兄弟节点:nextSibing
-->
<script type="text/javascript"> function getNodeByLevel() { //获取页面中的表格节点 var tableNode = document.getElementById("tableId"); //获取父节点 //var node = tableNode.parentNode; //alert(node.nodeName); //获取子节点 var chnodes = tableNode.childNodes; //不知为啥,table的第一个孩子节点是#text(文本节点),浏览器的原因 //table标签完了之后是一个回车,谷歌浏览器认为是一个空白的文本节点 // alert(chnodes[1].childNodes[0].nodeName); //获取兄弟节点 var preBrotherNode = tableNode.previousSibling; alert(preBrotherNode.nodeName); //尽量少用兄弟节点,因为浏览器不同解析不一致,很容易就解析出文本节点 } </script> <input type="button" value="通过节点关系获取标签" onclick="getNodeByLevel()"/> <div>div区域</div> <table id="tableId"> <tr> <td>单元格一</td> <td>单元格二</td> </tr> </table> <dl> <dt>上层项目</dt> <dd>下层项目</dd> </dl> <a href="http://www.baidu.com">百度</a>
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"> div{ border:#FF00FF solid 1px; width: 200px; padding:25px; margin: 10px; } #div1{ background-color: #F0000F; } #div2{ background-color: #0CCFFF; } #div3{ background-color: #0FF00F; } </style> </head> <body> <script type="text/javascript"> //创建并添加节点 //在div1中添加一个文本节点 function CreatAndAddNode1_1(){ /* 1.创建文本节点 2.获取div1节点 3.将文本节点添加到div1节点中 */ var oTextNode = document.createTextNode("文本节点"); var odiv1Node = document.getElementById("div1"); odiv1Node.appendChild(oTextNode); } //在div1中创建并添加按钮节点 function CreatAndAddNode1_2(){ //没有创建按钮这个方法,所以创建元素 var obuttonNode = document.createElement("input"); obuttonNode.type = "button";//指定类型 obuttonNode.value = "我的按钮"; var odiv2Node = document.getElementById("div1"); //将按钮添加div1节点中 odiv2Node.appendChild(obuttonNode); } function CreatAndAddNode2(){ //通过另一种方式添加节点 /* 使用容器型标签中的一个属性innerHTML 这个属性可以设置html文本 */ var odiv1Node = document.getElementById("div1"); //odiv1Node.innerHTML = "ceshiyixia";//不论点多少下只能覆盖 odiv1Node.innerHTML="<input type='button' value='我的小按钮'>"; odiv1Node.innerHTML="<a href='http://www.baidu.com'>我的超链接</a>";//覆盖上面按钮 } function DeleteNode(){ //将'你好'节点删除 var odiv2Node = document.getElementById("div2"); //odiv2Node.remove(); odiv2Node.parentNode.removeChild(odiv2Node); } function ChangeNode1_1(){ //用div3节点添换div1节点 var odiv3Node = document.getElementById("div3"); var odiv1Node = document.getElementById("div1"); odiv1Node.parentNode.replaceChild(odiv3Node,odiv1Node);//用div3替换div1 } function ChangeNode1_2(){ //把div1克隆成div3 var odiv3Node = document.getElementById("div3"); var odiv1Node = document.getElementById("div1"); var ocopyNode3 =odiv3Node.cloneNode(true);//将true,连文本都克隆 odiv1Node.parentNode.replaceChild(ocopyNode3,odiv1Node);//div1克隆div3 } </script> <input type="button" value="创建并添加节点" onclick="CreatAndAddNode1_1()"> <input type="button" value="创建并添加节点按钮" onclick="CreatAndAddNode1_2()"> <input type="button" value="创建并添加节点按钮2" onclick="CreatAndAddNode2()"> <input type="button" value="删除节点" onclick="DeleteNode()"> <input type="button" value="改变节点_替换" onclick="ChangeNode1_1()"> <input type="button" value="改变节点_克隆" onclick="ChangeNode1_2()"> <div id="div1"> </div> <div id="div2"> 你好 </div> <div id="div3"> 我好 </div> </body></html>
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"> a:link,a:visited{/*访问前访问后样式不遍*/ color:#0044FF; text-decoration: none; } a:hover{ color: #FF8800; } #newstext{ width: 400px; border: #F000FF solid 1px; padding: 10px; } </style> </head> <body> <script type="text/javascript"> function changeFont(SIZE){ //获取div节点对象 var odivNode = document.getElementById("newstext"); //获取 odivNode 的style属性 对象 odivNode.style.fontSize = SIZE;//CSS中样式的属性如font-size,DOM中就是fontSize } </script> <h1>新闻标题</h1><hr/> <a href="javascript:void(0)" onclick="changeFont('24px')">大字体</a> <a href="javascript:void(0)" onclick="changeFont('16px')">中字体</a> <a href="javascript:void(0)" onclick="changeFont('12px')">小字体</a> <br> <div id="newstext"> 阿斯顿所得到的的点点滴滴的点点滴滴的点点滴滴的点点滴滴单独 .... </div> </body> </html>
<!DOCTYPE html> <html> <head lang="en"> <!-- <link href="1.css" id="xxx"/> 下面的样式代码,就可以封装到单独的css文件中 同样也可以获取到link标签,通过js的方法传递2.css,就可以实现改变另一样式的效果 --> <meta charset="UTF-8"> <title></title> <style type="text/css"> a:link,a:visited{/*访问前访问后样式不遍*/ color:#0044FF; text-decoration: none; } a:hover{ color: #FF8800; } #newstext{ width: 400px; border: #F000FF solid 1px; padding: 10px; } .norml{ color: #000000; font-size: 16px; background-color: #CDD8D0; } .max{ color: #808080; font-size: 28px; background-color: #9CE9B4; } .min{ color: #FF0000; font-size: 12px; background-color: #Ffffff; } </style> </head> <body> <script type="text/javascript"> function changeFont(selectorname){ var odivNode = document.getElementById("newstext"); odivNode.className = selectorname;//html中是class,DOM是className } </script> <h1>新闻标题</h1><hr/> <a href="javascript:void(0)" onclick="changeFont('max')">大字体</a> <a href="javascript:void(0)" onclick="changeFont('norml')">中字体</a> <a href="javascript:void(0)" onclick="changeFont('min')">小字体</a> <br> <div id="newstext" class = "norml"> 阿斯顿所得到的的点点滴滴的点点滴滴的点点滴滴的点点滴滴单独 ... </div> </body> </html>
原文:http://blog.csdn.net/wjw0130/article/details/41809685