1. obj.xxx 俗称点 *** 作,比如: obj.className = 'red'
2. obj.setAttribute(name,value) 比如: obj.setAttribute('class','red')
却别在于:
. *** 作不能 *** 作自定义属性
attribute可以
对于这里的class *** 作,其实是没什么区别的,建议用className,或者用H5里面提供的
classList *** 作class
// dom 元素处理// 获取dom属性
function getAttr( attr )
{
return this.getAttribute( attr )
}
// 设置属性
function setAttr( attr, val )
{
this.setAttribute( attr, val )
return this
}
// 编辑元素class
function editClass( mode, data )
{
var cls = getAttr.call( this, "class" ) || ''
var arr = cls.split( /\s+/ )
switch( mode )
{
case "add":
return setAttr.call( this, "class", cls + " " + data )
break
case "remove":
for( var i = 0 i < arr.length i++ )
{
if( arr[ i ] == data )
{
arr.splice( i, 1 )
}
}
var cls = arr.join( " " )
cls = cls.replace( /^\s|\s$/g, "" )
// cls = cls == "" ? null : cls
return setAttr.call( this, "class", cls )
break
default:
console.log( "EditClass mode error!" )
return this
break
}
}
// 添加class
function addClass( cls )
{
return editClass.call( this, "add", cls )
}
// 删除class
function removeClass( cls )
{
return editClass.call( this, "remove", cls )
}
// 我写的这个调用起来和普通的调用方式不一样, 需要用call
// 比如
dom = document.getElementById('domid')
addClass.call(dom, 'newclass') // 给dom添加名为‘newclass’的classname
至于toggle没用过,不清楚是什么效果, 不过我想结合add和remove应该已经能做出所有效果了
js通过class改变样式,可以使用Dom的className属性设置元素的样式。完整示例代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试页面</title>
<style type="text/css">
.themeCls {
color: #000
background-color: #f60
line-height: 25px
}
</style>
</head>
<body style="background-color:#ccc">
<span id="theme">这是一段测试文本<br />用来测试js通过class改变样式</span>
<script type="text/javascript">
var domTheme = document.getElementById("theme")
theme.className = "themeCls"
</script>
</body>
</html>
具体 *** 作步骤如下:
1、新建一个html文件,命名为t.html。
2、打开t.html。
3、在t.html中写入html结构代码,其中设置需要添加class类的元素的ID为“theme”。代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试页面</title>
</head>
<body style="background-color:#ccc">
<span id="theme">这是一段测试文本<br />用来测试js通过class改变样式</span>
</body>
</html>
4、设置一个css类,命名为”themeCls”,用于在javascript *** 作时给元素添加clsss。”themeCls”类为了方便观察效果,设置css规则为字体颜色为黑色#000,背景为橙色#f60,行高为25像素。代码如下:
<style type="text/css">
.themeCls {
color: #000
background-color: #f60
line-height: 25px
}
</style>
5、编写javascript代码,获取ID为“theme”的元素并设置元素的class类为“themeCls”,代码如下:
<script type="text/javascript">
var domTheme = document.getElementById("theme")
domTheme .className = "themeCls"
</script>
6、打开浏览器,浏览t.html页面,发现页面中”这是一段测试文本用来测试js通过class改变样式”这一段文本字体颜色呈现黑色,背景呈现橙色,说明我们为元素添加class类“themeCls”成功了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)