<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.b1{
width: 100px;
height: 100px;
background-color: red;
}
.b2{
height: 300px;
background-color: yellow;
}
</style>
<script type="text/javascript">
window.onload = function(){
//獲取box
var box = document.getElementById("box");
//獲取btn01
var btn01 = document.getElementById("btn01");
//為btn01綁定單擊響應函數
btn01.onclick = function(){
//修改box的樣式
/*
* 通過style屬性來修改元素的樣式,每修改一個樣式,瀏覽器就需要重新渲染一次頁面
* 這樣的執(zhí)行的性能是比較差的,而且這種形式當我們要修改多個樣式時,也不太方便
*/
/*box.style.width = "200px";
box.style.height = "200px";
box.style.backgroundColor = "yellow";*/
/*
* 我希望一行代碼,可以同時修改多個樣式
*/
//修改box的class屬性
/*
* 我們可以通過修改元素的class屬性來間接的修改樣式
* 這樣一來,我們只需要修改一次,即可同時修改多個樣式,
* 瀏覽器只需要重新渲染頁面一次,性能比較好,
* 并且這種方式,可以使表現和行為進一步的分離
*/
//box.className += " b2";
//addClass(box,"b2");
//alert(hasClass(box,"hello"));
//removeClass(box,"b2");
toggleClass(box,"b2");
};
};
//定義一個函數,用來向一個元素中添加指定的class屬性值
/*
* 參數:
* obj 要添加class屬性的元素
* cn 要添加的class值
*
*/
function addClass(obj , cn){
//檢查obj中是否含有cn
if(!hasClass(obj , cn)){
obj.className += " "+cn;
}
}
/*
* 判斷一個元素中是否含有指定的class屬性值
* 如果有該class,則返回true,沒有則返回false
*
*/
function hasClass(obj , cn){
//判斷obj中有沒有cn class
//創(chuàng)建一個正則表達式
//var reg = /\bb2\b/;
var reg = new RegExp("\\b"+cn+"\\b");
return reg.test(obj.className);
}
/*
* 刪除一個元素中的指定的class屬性
*/
function removeClass(obj , cn){
//創(chuàng)建一個正則表達式
var reg = new RegExp("\\b"+cn+"\\b");
//刪除class
obj.className = obj.className.replace(reg , "");
}
/*
* toggleClass可以用來切換一個類
* 如果元素中具有該類,則刪除
* 如果元素中沒有該類,則添加
*/
function toggleClass(obj , cn){
//判斷obj中是否含有cn
if(hasClass(obj , cn)){
//有,則刪除
removeClass(obj , cn);
}else{
//沒有,則添加
addClass(obj , cn);
}
}
</script>
</head>
<body>
<button id="btn01">點擊按鈕以后修改box的樣式</button>
<br /><br />
<div id="box" class="b1 b2"></div>
</body>
</html>
137JS--類的操作
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內容
- 對象數據類型 普通對象 {[key] : [value], ……} 任何一個對象都是由0到多組鍵值對(屬性名:屬性...
- js中獲取節(jié)點和針對節(jié)點的操作以及類名操作 獲取節(jié)點 孩子節(jié)點 childNodes 獲取所有子元素節(jié)點和文本節(jié)點...
- 數據類型 js中數據類型:number、string、boolean、null、undefined變量聲明了沒有賦...
- 嚴格模式 嚴格模式是為JavaScript定義了一種不同的解析與執(zhí)行模型。在嚴格模式下,ECMAScript3中的...