利用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没办法按要求设置样式来充实页面内容的时候才用。
相关推荐:
seo重点是什么,seo最重要的指标 ,ai网格怎么用
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
seo需要买什么,seo需要考虑什么 ,ai做表头
文章去AI回归创作的本真之美
SEO立刻:快速提升网站排名,带你走在搜索引擎前沿,网站建设怎么推广好做
SEO包月服务:助力企业提升网站排名与流量的长期利器,网站建设流程 报读文库
seo跟sem是什么,seo和sem的概念 ,惠威的ai功能
为什么seo这么麻烦,seo是什么意思 为什么要做seo ,dota1ai地图命令选ai
SEO符合:提升网站排名的秘诀,助力企业赢在搜索引擎优化的赛道,优化没续费 网站没了
SEO优化工具优势:提升网站排名,带来流量和转化的秘密武器,ai圆形造字
AI工具汇总网站,让科技为您的工作加速
在线AI文章:为您打造全新内容创作体验
AI提取文章重要内容:让信息抓取更高效、更精准,松鼠ai 教学
Chat免费,让沟通无界限,尽享智能对话时代,ai没办法置顶
SEO人工优化-让你的网页轻松登上搜索引擎首页,ai主母
SEO检测,让网站排名飞升的秘密武器,高端快消食品营销推广
SEO培训:助力企业实现互联网营销的无限可能,平塘网站优化推广价格
SEO部:开启数字化营销新纪元的幕后英雄,株洲营销推广是什么公司
AI软件不用登录,让你的工作更高效轻松,智能ai写作改稿怎么改
什么是seo长尾词,什么是seo长尾词的概念 ,绿茶ai换脸杨超越
SEO可以改变你的商业未来:如何通过优化提升网站流量和转化率,五粮液营销推广
ChatGPT的超链接点不开?解决方法一网打尽!,情感ai写作指令是什么
ChatGPT画布打不开?如何解决这一常见问题?,Ai怎么储存为Ai格式在桌面
SEO子-为你的网站注入流量的秘密武器,麻城网站网址优化
ChatGPTWindows版本:让AI助手成为你的工作与生活得力助手,Ai相减变形
seo营销方法是什么,seo营销模式 ,ai山海
如何用AI改文章,让写作更高效、精准,提升内容质量
SEO费用如何根据预算选择最合适的SEO服务,营销类推广网站
“新关键词”开启智慧营销新篇章,助力品牌突围,自己如何做网站seo
优化,让生活与工作更高效-从个人到企业的全面升级,广州百度seo费用
乘风SEO:突破困境,领航网络营销新时代,武汉靠谱的关键词排名
ChatGPT无法加载?检查您的网络设置并尝试重启,轻松解决常见问题!,ai招生广告设计
什么是SEO金融,seo是做什么的 ,ai中转程序
SEO未来:如何在变革中抢占先机,迎接数字营销的新纪元,台州网站建设分析和总结
常用AI工具,高效智能生活
SEO在广告领域的深度解析:如何利用SEO提升广告效果,网文写作ai工具
SEO永远,数字营销的核心力量,广州seo搜索栏内容
线上AI写作免费一键生成,轻松提升写作效率,解放创作思维
SEO抓取:让您的网站从零到一的秘诀,佛山网站建设哪家效果好
seo软件是什么职位,seo用的是什么软件 ,ai感知树
ChatGPT翻译打不开?解决方法!,ai爱股票
今时CMS:引领数字化转型的智慧之选,河南seo优化网站联系方式
SEO技术如何通过优化提升网站流量与排名,四平网站优化公司
ChatGPT遇到问题?如何解决“您的应用遇到问题,无法正常启动”困境?,ai下载增强版
AI写作免费一键生成5000字:高效创作的革命性工具
ChatGPT出现错误503?你需要知道的解决方案和应对策略,ai拉伸字效
人工AI软件的未来:智能时代的创新驱动力
ChatGPT无法加载?检查您的网络设置并尝试重启,轻松解决连接问题!,ai制作艺术字
揭开“好的AI软件”背后的秘密:让生活和工作更智能的利器
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化