document.writeln("<p class='test para my a b ' align='right'>sqf1</p><div>这是一个div块</div>");
var elem = document.getElementsByTagName('p')[0];
/****************************************************************************************/
// 此方法传入0个或多个新类名,若多个,则以空格分隔开
// 示例: document.getElementsByTagName('p')[0].addClassName('a b c');
// 此方法有缺陷,空格问题。应该用数组分隔来做
Object.prototype.addClassName = function(newClassName){
if (!newClassName.length) {
throw new Error('不能为空啊');
} else if (newClassName.length > 30) {
throw new Error('新增的类名过长!');
}
var oldClassName = this['className'],
resultName = oldClassName + ' ' + newClassName;
this['className'] = resultName;
return this['className'];
};
console.log(document.getElementsByTagName('p')[0].addClassName('ss'));
/****************************************************************************************/
/**
*此方法有个即可以说是缺陷也可以说是有点好的地方,就是:只要运行此方法,就会去掉类名中多余的空格
*/
Object.prototype.removeClassName = function(name){
var argsCount = arguments.length;
var oldClassNameString = this['className'];
// 第一步:用正则去掉多余空格(变一个或多个空格为一个空格)
// 第二步: 去掉首尾空格,注意 | 紧挨着,不能有空格
//然后变为数组
var oldClassNameArray = oldClassNameString.replace(/\s+/g,' ').replace(/(^\s+)|(\s+$)/g,'').split(' ');
console.log(oldClassNameArray);
// 去掉类名,可以多个参数(类名)
for (var i = 0; i < argsCount; i++) {
for (var j = 0; j < oldClassNameArray.length; j++) {
if (arguments[i] == oldClassNameArray[j]) {
// 移出这个相同的类名数组项,位置j,项数1
oldClassNameArray.splice(j,1);
}
}
}
console.log(oldClassNameArray);
// 然后还原为字符串类名
var newClassNameString = oldClassNameArray.join(' ');
this['className'] = newClassNameString; //完工!
return this['className'];
}
console.log(document.getElementsByTagName('p')[0].removeClassName());
增删类名
最新推荐文章于 2023-02-16 11:13:01 发布