javascript基础(class 类属性的操作(增,删,改,查))(四十五)
2017-02-16 17:37
399 查看
1.类属性的操作
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.b1{
width: 100px;
height: 100px;
background-color: red;
}
.b2{
width: 200px;
height: 200px;
background-color: yellow;
}
</style>
<script type="text/javascript">
window.onload = function(){
/*
* 点击按钮,修改div的样式
*/
//获取box1
var box1 = document.getElementById("box1");
//为btn01绑定一个单击响应函数
var btn01 = document.getElementById("btn01");
btn01.onclick = function(){
//修改box1的样式
/*box1.style.width = "200px";
box1.style.height = "200px";
box1.style.backgroundColor = "yellow";*/
/*
* 我们可以通过修改元素的class来间接的修改元素的样式,
* 这样我们可以同时修改多个样式,并且提升浏览器渲染页面的性能
* 修改class也可以使行为和表现分离,方便后期维护
*/
//修改box1的class为b2
//box1.className += " b2";
//向box1中添加b2这个class
//addClass(box1 , "b2");
//检查box1中是否含有b2这个class
//alert(box1.className == "b2") ;
//创建一个正则表达式
/*var reg = /\bb2\b/;
alert(reg.test(box1.className));*/
//alert(hasClass(box1,"b3"));
//removeClass(box1,"b2");
toggleClass(box1,"b2");
};
};
/*
* 定义一个专门用来向元素中添加class的函数
* 参数:
* obj 要添加class属性的对象
* cn 要添加的class的属性值
*/
function addClass(obj , cn){
//如果元素中有该class则不添加,没有才添加
if(!hasClass(obj , cn)){
obj.className += " " + cn;
}
}
/*
* 创建一个函数检查一个元素中是否含有指定的class
* 如果有,则返回true。否则返回false
*/
function hasClass(obj , cn){
//创建正则表达式
var reg = new RegExp("\\b"+cn+"\\b");
//返回检查结果
return reg.test(obj.className);
}
/*
* 用来从指定元素中删除class值的方法
*/
function removeClass(obj , cn){
//要删除一个class,就是将这个class替换为一个空串
//创建正则表达式
var reg = new RegExp("\\b"+cn+"\\b" , "g");
//判断obj中是否含有这个class
if(reg.test(obj.className)){
//将内容替换为空串
obj.className = obj.className.replace(reg , "");
}
}
/*
* 用来切换元素的class的方法
* 如果元素中含有该class,则删除
* 如果元素中没有该class,则添加
*
*/
function toggleClass(obj , cn){
//检查obj中是否含有cn
if(hasClass(obj , cn)){
//有该class,则删除
removeClass(obj , cn);
}else{
//没有该class,则添加
addClass(obj , cn);
}
}
</script>
</head>
<body>
<button id="btn01">点我一下</button>
<br /><br />
<div id="box1" class="b1 b2 b3 b4 b2 b2 b2"></div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.b1{
width: 100px;
height: 100px;
background-color: red;
}
.b2{
width: 200px;
height: 200px;
background-color: yellow;
}
</style>
<script type="text/javascript">
window.onload = function(){
/*
* 点击按钮,修改div的样式
*/
//获取box1
var box1 = document.getElementById("box1");
//为btn01绑定一个单击响应函数
var btn01 = document.getElementById("btn01");
btn01.onclick = function(){
//修改box1的样式
/*box1.style.width = "200px";
box1.style.height = "200px";
box1.style.backgroundColor = "yellow";*/
/*
* 我们可以通过修改元素的class来间接的修改元素的样式,
* 这样我们可以同时修改多个样式,并且提升浏览器渲染页面的性能
* 修改class也可以使行为和表现分离,方便后期维护
*/
//修改box1的class为b2
//box1.className += " b2";
//向box1中添加b2这个class
//addClass(box1 , "b2");
//检查box1中是否含有b2这个class
//alert(box1.className == "b2") ;
//创建一个正则表达式
/*var reg = /\bb2\b/;
alert(reg.test(box1.className));*/
//alert(hasClass(box1,"b3"));
//removeClass(box1,"b2");
toggleClass(box1,"b2");
};
};
/*
* 定义一个专门用来向元素中添加class的函数
* 参数:
* obj 要添加class属性的对象
* cn 要添加的class的属性值
*/
function addClass(obj , cn){
//如果元素中有该class则不添加,没有才添加
if(!hasClass(obj , cn)){
obj.className += " " + cn;
}
}
/*
* 创建一个函数检查一个元素中是否含有指定的class
* 如果有,则返回true。否则返回false
*/
function hasClass(obj , cn){
//创建正则表达式
var reg = new RegExp("\\b"+cn+"\\b");
//返回检查结果
return reg.test(obj.className);
}
/*
* 用来从指定元素中删除class值的方法
*/
function removeClass(obj , cn){
//要删除一个class,就是将这个class替换为一个空串
//创建正则表达式
var reg = new RegExp("\\b"+cn+"\\b" , "g");
//判断obj中是否含有这个class
if(reg.test(obj.className)){
//将内容替换为空串
obj.className = obj.className.replace(reg , "");
}
}
/*
* 用来切换元素的class的方法
* 如果元素中含有该class,则删除
* 如果元素中没有该class,则添加
*
*/
function toggleClass(obj , cn){
//检查obj中是否含有cn
if(hasClass(obj , cn)){
//有该class,则删除
removeClass(obj , cn);
}else{
//没有该class,则添加
addClass(obj , cn);
}
}
</script>
</head>
<body>
<button id="btn01">点我一下</button>
<br /><br />
<div id="box1" class="b1 b2 b3 b4 b2 b2 b2"></div>
</body>
</html>
相关文章推荐
- JavaScript操作DOM元素中的class属性(转载)
- 第一百六十六节,jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度、偏移、滚动条
- javascript操作class属性
- javascript基础(样式的操作,浏览器兼容样式操作,其他的样式相关属性,滚动的样式)(三十)
- HTML5基础加强css样式篇(DOM的属性操作(对class属性值的操作 setAttribute,removeAttribute,classlist:remove,add,toggle))(七)
- javascript基础——属性操作
- Javascript 操作元素Class属性的问题
- JavaScript 节点操作 以及DOMDocument属性和方法
- JavaScript操作数组对象的方法及属性全集合
- javascript操作cookies and 正确使用cookies的属性
- 【转】javascript操作cookies 以及 正确使用cookies的属性
- javascript--DOM对象模型的常用操作属性和方法
- 透过JavaScript更改style的class属性范例
- javascript 操作cookies及正确使用cookies的属性
- [转载 js]JavaScript节点操作DOMDocument属性和方法
- 使用javascript更改某个css class的属性
- 9.20:javascript执行顺序和改变DOM节点的CSS class属性
- [javascript基础控件操作]--select操作
- 使用javascript更改某个css class的属性
- [转载 js]JavaScript节点操作DOMDocument属性和方法