web前端|js教程
DOM脚本,设置样式
web前端-js教程
利用DOM脚本去设置样式信息:(by wushan)
在大多数场合,我们都用CSS去设置样式,但在某些特殊情况下,例如要根据元素在节点树里的位置来设置节点样式信息时,目前CSS还没办法做到这一点。但利用DOM就可以很轻易的完成。
例如:把一定样式施加到所有hl元素的下一兄弟节点(下一元素节点)上。这时候用CSS没办法确定位置,但用DOM的getElementsByTagName( )方法很容易就把所有hl元素后面的那个元素找出来,这时候只要对找出来的元素施加样式就可以了。以下是代码清单:
cs架构理财源码,vscode识别插件,启动项删除Ubuntu,tomcat夯住,c 连接sqlite文件,qx插件和微x插件,更换前端框架 怎么报价,黑客和爬虫区别,php对象的值,seo优化方案范文,手机网站模板之家, 读取网页源码,人力资源管理html模板下载,wp文章页面,在线家庭理财管理系统,仿程序侠lzw
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属性,那么修改起来就会很简单。例如我们可以对上述例子做出如下修改:
进销存源码购买,html和vscode的区别,ubuntu 复制权限,tomcat6热部署,sqlite添,永川网页设计 培训,帝国cms系统数据库配置文件是,php源码放入iis+mysql+php服务器打开出现乱码,二次插件的作用,前端框架 flutter,爬虫宠物蛇,php酒店,廊坊SEO培训,面试用springboot,aside标签例子,asp免费网站程序下载,网页不显示鼠标,asp怎样建立模板,ecshop后台顶部导航,在html5页面进行数学运算,易思企业网站管理系统操作说明,下载 asp程序开发大全lzw
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属性值的基础上追加新的属性值,而不是覆盖,方法如下:
微商o2o系统源码,vscode好看的等宽字体,重置Ubuntu源,tomcat7 cors,爬虫uvb测试,php 判断是否手机号码,seo公司排名公开易速达,phpok 手机网站,好系统网站模板下载网站lzw
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没办法按要求设置样式来充实页面内容的时候才用。