aaClass()封装通用函数,解classNames属性替换而不是追加问题

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function  styleHeadersSiblings(){
if (!document.getElementsByTagName)  return  false ;
var  headers = document.getElementsByTagName( "h1" );
for ( var  i = 0;i < headers.length; i++){
var  elem = getNextElement(headers[i].nextSibling);
//elem.style.color = "red";
//elem.style.fontSize = "1.2em";
//以下使用className属性,该属性是替换,不是追加
//elem.className = "intro";                  //.intro{ color:red;font-size:1.2em;}
addClass(elem, "intro" ); //调用封装函数
}
}
 
//elem.className +=" intro"    注意,intro的第一个字符是空格,表示把新的calss属性追加到原来属性上去
//如过原来没有属性,则对className直接赋值即可,而不需要追加
//因此我们可以把以上步骤封装成一个函数进行通用
function  addClass(element,value){
if (!element.className){
element.className = value;
} else {
newClassName = element.className;
newClassName +=  " " ;
newClassName += value;
element.className = newClassName;
}
}本文转自  小旭依然  51CTO博客,原文链接:http://blog.51cto.com/xuyran/1783892
相关文章
|
6月前
|
JavaScript
写一个函数将N组<>(包含开始和结束),进行组合,并输出组合结果 (js)
写一个函数将N组<>(包含开始和结束),进行组合,并输出组合结果 (js)
97 0
|
5月前
|
Windows
VBA的直接或间接调用的语法格式
VBA|过程或方法内部的直接或间接调用与相对怪异的语法格式
|
6月前
|
开发框架 .NET C#
C# 10.0中的扩展属性与模式匹配:深入解析
【1月更文挑战第20天】C# 10.0引入了众多新特性,其中扩展属性与模式匹配的结合为开发者提供了更强大、更灵活的类型检查和代码分支能力。通过这一特性,开发者可以在不修改原始类的情况下,为其添加新的行为,并在模式匹配中利用这些扩展属性进行更精细的控制。本文将详细探讨C# 10.0中扩展属性与模式匹配的工作原理、使用场景以及最佳实践,帮助读者更好地理解和应用这一新功能。
|
缓存 NoSQL Java
如何给多参数接口添加缓存(根据方法名字+参数名生成对应的key)
如何给多参数接口添加缓存(根据方法名字+参数名生成对应的key)
207 0
如何给多参数接口添加缓存(根据方法名字+参数名生成对应的key)
|
JavaScript 前端开发
|
移动开发 程序员
H5 中 bordercolorlight 属性的用法及作用
H5 中 bordercolorlight 属性的用法及作用
237 0
H5 中 bordercolorlight 属性的用法及作用
lodash创建一个函数属性名称的数组,包含继承属性
lodash创建一个函数属性名称的数组,包含继承属性
86 0
c#程序片段,替换所有同名文件
class Program { static void Main(string[] args) { try { ...
876 0