最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解原生JS動(dòng)態(tài)添加和刪除類

 更新時(shí)間:2019年03月26日 15:13:08   作者:zh阿飛  
這篇文章主要介紹了原生JS動(dòng)態(tài)添加和刪除類,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

由于需要, 給按鈕組監(jiān)聽(tīng)點(diǎn)擊事件(要求用事件委托),當(dāng)有一個(gè)按鈕被點(diǎn)擊時(shí),相應(yīng)的給該按鈕添加一個(gè)類(激活類),其他沒(méi)有點(diǎn)擊的按鈕就要移出該類

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

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

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

1.通過(guò)類名, 獲取類名: el.className, 賦值: el.className = "className" 會(huì)覆蓋掉原來(lái)的類

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

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

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

4.通過(guò) 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語(yǔ)法(用ES6寫簡(jiǎn)潔)

let myEventUtil = {
	// 添加監(jiān)聽(tīng)事件
	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) ==> 是一個(gè)dom元素 btnGroup 
	// 可以通過(guò) el.children[i]拿到具體的子元素
	// 拿到子元素了可以通過(guò) el.classList.remove("className") 刪除類
	// el.classList.add("className") 來(lái)添加類
	
	// 刪除類
	let len = this.children.length;
	for (let i = 0; i < len; i ++) {
		this.children[i].classList.remove("btn-active");
		// this.children[i].className = "btn"; // 用其中一個(gè)就行
	}
	// 添加類, 拿到具體的 btn 給它添加類
	myEventUtil.getTarget(ev).classList.add("btn-active"); 
	// myEventUtil.getTarget(ev).className = "btn"; // 用其中一個(gè)就行
});

以上所述是小編給大家介紹的原生JS動(dòng)態(tài)添加和刪除類詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

咸阳市| 阿巴嘎旗| 万荣县| 龙山县| 宜川县| 依兰县| 阳泉市| 牙克石市| 富裕县| 玉树县| 洛扎县| 牟定县| 安庆市| 抚远县| 沁水县| 安康市| 宣汉县| 内乡县| 呼伦贝尔市| 融水| 民勤县| 黎平县| 鄂州市| 桦甸市| 宁陕县| 巍山| 黄石市| 鄂温| 随州市| 平顺县| 无锡市| 南溪县| 宁南县| 盱眙县| 新龙县| 根河市| 娄底市| 庆城县| 本溪市| 赤城县| 桐乡市|