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

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;
}
}
时间: 2024-10-11 01:20:47

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

使用属性替换可访问的数据成员

自1.0版本以来,c#对属性进行了一系列的增强,让其表达能力不断提高.你可以对setter和geter指定不同的访问权限.同时隐式属性也极大降低了声明属性的工作量,不会比声明数据成员麻烦多少.如果你还在类型中声明公有成员,那么快停下来吧,下面我们来对比一下两者的优缺点: 1,属性可以创建出类似于数据访问,但实际上却是方法调用的接口,所以它可以享受到方法调用的所有好处. 2,客户代码访问属性的时候,就像是在访问公有字段,不过其底层使用方法实现,其中还可以自由定义属性访问器的行为. 3,.Net F

Android 动画详解之属性动画(Property Animation)(下)

Hello,大家好,最近好长时间没有写博客了,因为我决定辞职了. 废话不多说,我们还是来看属性动画在上一篇Android 动画详解之属性动画(Property Animation)中我们简单的介绍了一下属性动画的用法,其实属性动画还有更多有趣的用法. 1,在xml中使用 在eclipse中我们右键新建xml可以选择新建属性动画,如图 我们选择objectAnimator,然后我们就会看到熟悉的一幕 然后我们用智能提示就可以看到更熟悉的 没错,这下我们应该知道怎么用xml布局来写属性动画了吧 <s

c#封装和类的属性课堂上机练习

封装和类的属性课堂上机练习 课堂上机任务一:字段的定义与使用 时间:12分钟 要求: 在汽车类Car中创建字段,并在按钮的单击事件中显示各个字段的信息. 步骤: ?1.创建一个窗体类型的项目CarSystem ?2.创建汽车类Car,该类包含的字段:车名.价格.厂家 ?3.写一个按钮的单击事件,用MessageBox.Show方法显示这些字段信息 ?4.创建一个窗体,输入车名.价格.厂家,并存储到Car对象的对应字段中 ?5.测试该类,尝试价格为10亿元时会出错吗?这样的价格符合生活常识吗? 课

iOS- 详解文本属性Attributes

iOS- 详解文本属性Attributes 2014-03-01 21:06:18cnblogs.com-详解文本属性Attributes 1.NSKernAttributeName: @10 调整字句 kerning 字句调整 2.NSFontAttributeName : [UIFont systemFontOfSize:_fontSize] 设置字体 3.NSForegroundColorAttributeName :[UIColor redColor] 设置文字颜色 4.NSParagr

Python封装及解构

python封装及解构 Python的封装与其他语言的封装箱不同,python中没有装箱的概念,一切皆对象 将多个值使用逗号进行分割,本质上是返回元组 In [1]: a = 1,2 In [2]: type(a) Out[2]: tuple In [3]: a Out[3]: (1, 2) 封装 在进行交换的时候,已经被封装为元组 在赋值的过程中,看似什么都没有做,但是在右值将其封装为元组,因为其值不变 In [9]: a = 1,2 In [10]: a?? Type:       tupl

详解 CSS 属性 - :before &amp;&amp; :after

之前写了一篇 <详解 CSS 属性 - :before && :after> 的博文,当时自己没分清楚伪元素和伪类,所以在文章内把概念混淆了,庆幸 @riophae 兄指正了我的错误,所以今天打算好好研究下两者的区别.首先,阅读 w3c 对两者的定义: CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪元素用于将特殊的效果添加到某些选择器. 可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果.这里特殊指的是两者描述了其他 css 无法描述的东西. 伪类种

封装与解构

在IPython中可以使用 %timeit  计算程序运行时间 1.单行: %timeit  statement 2.多行:%%timeit 例如: def asfd(n): # 定义一个函数 for i in range(n): return(i) 单行:%timeit(20) 多行:%%timeit  m=20 asfd(m)   封装与解构: 封装: #  等号右边多个值使用逗号分割组合返回一个元组 例如: t = 1,2,3 print(t) 为(1,2,3) 解构: # 把线性结构(非

变速动画函数封装增加任意一个属性

//计算后的样式属性---- 一个元素的任意的一个样式属性值function getStyle(element,attr) { //判断这个浏览器是否支持这个方法 return window.getComputedStyle?window.getComputedStyle(element,null)[attr]:element.currentStyle[attr];}//匀速动画function animate(element,attr,target) { //element--元素 attr-

ffmpeg3.3新版本AVStream的封装流参数由codec替换codecpar(解码)

ffmpeg新版本中(封装流)AVStream的codec参数要被codecpar参数所替代,这样替代我们要注意什么,为什么要替代,我们先来看下ffmpeg的代码. 代码分析和新参数优势 typedef struct AVStream { #if FF_API_LAVF_AVCTX /** * @deprecated use the codecpar struct instead */ attribute_deprecated AVCodecContext *codec; #endif ....