国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

詳解原生JS動態添加和刪除類

2024-05-06 16:49:26
字體:
來源:轉載
供稿:網友

由于需要, 給按鈕組監聽點擊事件(要求用事件委托),當有一個按鈕被點擊時,相應的給該按鈕添加一個類(激活類),其他沒有點擊的按鈕就要移出該類

添加和和刪除類有三種方法

首先等到一個 dom 對象(也叫dom元素), 通過document.getElement……的幾種方法得到
如`

let element = document.getElementById("box");

1.通過類名, 獲取類名: el.className, 賦值: el.className = "className" 會覆蓋掉原來的類

2.通過屬性,獲取類名: el.getAttribute("class"); 賦值: el.setAttribute("class", "className1 className2"); 會覆蓋掉原來的類

3.通過屬性節點 attributeNode(性能差一點,但能兼容ie,getAttribute() ie 的有些版本不支持 )setAttributeNode() 方法向元素中添加指定的屬性節點。
如果這個指定的屬性已存在,則此方法會替換它。,獲取類名: getAttributeNode("class").value, 賦值:

let attr = document.createAttribute("class");attr.nodeValue = "className";el.setAttributeNode(attr)

4.通過 classList屬性, 獲取類名 el.classList; 追加類名: el.classList.add("className"); 刪除類 : el.calssList.remove("className");

上邊四種方法, classList最靈活,最好好用, 但是不支持 ie9 以下的瀏覽器, 兼容性要差一些

代碼如下:

html

<div id="btn-group">	<div class="btn btn-active">按鈕1</div>	<div class="btn">按鈕2</div>	<div class="btn">按鈕3</div>	<div class="btn">按鈕4</div></div>

js代碼, 其中用到了ES6語法(用ES6寫簡潔)

let myEventUtil = {	// 添加監聽事件	addEvent (element, type, handler) {		if (element.addEventListener) {			element.addEventListener(type, handler, false);		} else if (element.attach){ // ie			element.attach("on"+ type, handler);		} else {			element['on' + type] = handler;		}	},	getTarget (event) {		let event = event || window.event;		return event.target || event.srcElement;	}}let my$ = id => document.getElementById(id);let btnGroup = my$(“btn-group”);myEventUtil.addEvent(btnGroup, 'on', function (ev) {	// 給所有的 btn 都移除激活的類 btn-active	// console.log(this) ==> 是一個dom元素 btnGroup 	// 可以通過 el.children[i]拿到具體的子元素	// 拿到子元素了可以通過 el.classList.remove("className") 刪除類	// el.classList.add("className") 來添加類		// 刪除類	let len = this.children.length;	for (let i = 0; i < len; i ++) {		this.children[i].classList.remove("btn-active");		// this.children[i].className = "btn"; // 用其中一個就行	}	// 添加類, 拿到具體的 btn 給它添加類	myEventUtil.getTarget(ev).classList.add("btn-active"); 	// myEventUtil.getTarget(ev).className = "btn"; // 用其中一個就行});

以上所述是小編給大家介紹的原生JS動態添加和刪除類詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥江县| 景德镇市| 五大连池市| 固始县| 平山县| 株洲市| 视频| 大埔区| 绥江县| 连南| 孝昌县| 正宁县| 瑞金市| 康保县| 鸡东县| 都兰县| 永安市| 常山县| 惠安县| 南涧| 化德县| 连城县| 沙湾县| 衡水市| 青海省| 永仁县| 康定县| 广丰县| 岚皋县| 清徐县| 永德县| 乾安县| 昭通市| 寿光市| 长垣县| 绥滨县| 白玉县| 荃湾区| 张北县| 额尔古纳市| 普安县|