作家
登录

通过DOM脚本去设置样式信息

作者: 来源:www.28hudong.com 2013-03-30 01:17:14 阅读 我要评论

利用DOM脚本去设置样式信息:(by wushan) 在大多数场合,我们都用CSS去设置样式,但在某些特殊情况下,例如要根据元素在节点树里的位置来设置节点样式信息时,目前CSS还没办法做到这一点。但利用DOM就可以很轻易的完成。 例如:把一定样式施加到所有hl元素的下一兄弟节点(下一元素节点)上。这时候用CSS没办法确定位置,但用DOM的getElementsByTagName( )方法很容易就把所有hl元素后面的那个元素找出来,这时候只要对找出来的元素施加样式就可以了。以下是代码清单: 复制代码 代码如下: function styleHeaderSibling( ){ if(!document.getElementsByTagName) return false; //探测浏览器是否支持“getElementsByTagName”方法(个别浏览器并不支持DOM) var headers=document. getElementsByTagName(“hl”); for(var=0;i<headers.length;i++){ var elem=getNextElement(headers[i].nextSibling); elem.style.fontWeight=”bold”; elem.style.fontsize=”1.2em”;   } } function getNextElement(node){ if(node.nodeType==1){ //此节点为文本节点 return node;    }   if(node.nextSibling){   retnrn getNextElement(node.nextSibling);   } return null; } 不足:让“行为层”去完成“表现层”工作,当需要改变DOM脚本设置的样式信息时,修改起来很麻烦,如果能给所要设置样式的节点声明一个class属性,那么修改起来就会很简单。例如我们可以对上述例子做出如下修改: 复制代码 代码如下: function styleHeaderSibling( ){ if(!document.getElementsByTagName) return false; //探测浏览器是否支持“getElementsByTagName”方法 var headers=document. getElementsByTagName(“hl”); for(var=0;i<headers.length;i++){ var elem=getNextElement(headers[i].nextSibling); elem.className=”intro”; //给某元素设置class属性值的语法为:elements.className=value } } 由于此技巧有一不足之处:若该元素原本具有class属性值的话,那么原本的属性值就会被新的属性值所覆盖,原来的样式就会丢失,所有我们要在元class属性值的基础上追加新的属性值,而不是覆盖,方法如下: 复制代码 代码如下: function addClass(element,value){ if(!element.className){ element.className=value;    }else{ newclassName=element.className; newclassName +=" "; // 注意这个空格 newclassName +=value; element.className=newclassName;   } } 接着把上面的函数修改一下就可以了: 复制代码 代码如下: function styleHeaderSibling( ){ if(!document.getElementsByTagName) return false; //探测浏览器是否支持“getElementsByTagName”方法 var headers=document. getElementsByTagName(“hl”); for(var=0;i<headers.length;i++){ var elem=getNextElement(headers[i].nextSibling); addClass(elem,”intro”);   } } 说明:一般情况下,用DOM去设置样式是很不明智的,此方法只在CSS没办法按要求设置样式来充实页面内容的时候才用。

  推荐阅读

  jquery选择器(常用选择器说明)

基本选择器:$("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素$("div") 选择所有的div标签元素,返回div元素数组$(".>>>详细阅读


本文标题:通过DOM脚本去设置样式信息

地址:http://www.17bianji.com/kaifa2/JS/25668.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)