Home  >  Article  >  Web Front-end  >  HTML5 actual combat and analysis of classList attribute

HTML5 actual combat and analysis of classList attribute

黄舟
黄舟Original
2017-02-10 14:53:551806browse


I have introduced some newly added selectors in HTML5, namely querySelector(), querySelectorAll() and getElementsByClassName(). These three have their own unique functions. If necessary, you can read the relevant content in HTML5 actual combat and analysis. Today I will introduce to you the classList attribute.

What exactly does the classList attribute do? Let’s leave classList alone for now. We consider the question, that is, how do we delete one of the class names among elements with multiple class names? Menglong struggled with his brain and finally came up with a way to achieve it. Delete the class name meng among the three class names li, meng and long. The code is as follows

 HTML code

<p class="li meng long">梦龙小站</p>

 JavaScript code

//获取要删除类名meng的p
var p = document.getElementsByTagName("p")[0];

//获取类名字符串并拆分成数组
var allClassName = p.className.split(" ");

//找到要删除的类名
var i, len, 
	pos = -1;

for(i=0, len = allClassName.length; i < len; i++){
	if(allClassName[i] == "meng"){
		pos = i;
		break;
	}
}

//删除类名
allClassName.splice(pos, 1);

alert(allClassName) //li,long

//将其余的类名拼成字符串并重新添加到元素的类名中
p.className = allClassName.join(" ");

Preview effect


HTML5 actual combat and analysis of classList attribute

## In order to remove "meng" from the element class name, The above codes are required. Use a similar algorithm to replace the class name and confirm whether the class name is contained in the element. If you add a class name, you can complete it by splicing strings, but you must make sure through detection that the same class name will not be added multiple times. Many JavaScript libraries have implemented this method to simplify the operation. To delete a class name, you must first obtain the existing class name, find the location where the class name is to be deleted, and then delete it.

As can be seen from the above method, it takes several lines of code to implement a simple deletion function. If you don’t want to write several lines of code, you have to introduce a library and use the methods in the library. With HTML5, there is no need to be so troublesome. We can use the classList attribute in HTML5 to complete these steps. This classList attribute is an instance of the new collection type DOMTokenList. Similar to other DOM collections. DOMTokenList has a length attribute that indicates how many elements it contains. To obtain each element, you can use the item() method or square bracket syntax. Additionally, below are the methods defined for this new type.

1. remove(value)

The remove(value) method means to delete the given string from the list. A small example is as follows:

 

HTML code

<p class="li meng long">梦龙小站</p>

 

JavaScript code

//获取要删除类名meng的p
var p = document.getElementsByTagName("p")[0];

alert(p.classList)  //li meng long

p.classList.remove("meng") 

alert("p.className: " + p.className)  //p.className: li long

 

Preview effect


HTML5 actual combat and analysis of classList attribute
## 2. contains(value)

The contains(value) method indicates whether a given value exists in the list. If it exists, it returns "true", otherwise it returns "false". A small example is as follows:

 

HTML Code

<p class="li meng long">梦龙小站</p>
 

JavaScript code

//获取要删除类名meng的p
var p = document.getElementsByTagName("p")[0];

alert(p.classList.contains("meng")) //true

alert(p.classList.contains("menglong")) //false
 3. add(value)

 add(value ) method means that the strings in the list are added to the list. If it already exists, it will not be added. A small example is as follows:

 

HTML code

<p class="li meng long">梦龙小站</p>
 

JavaScript code

//添加类名 menglong

//获取要删除类名meng的p
var p = document.getElementsByTagName("p")[0];

p.classList.add("menglong");

alert("p.className: " + p.className)  //p.className: li meng long menglong
 

Preview effect


HTML5 actual combat and analysis of classList attribute

## 4. toggle(value)

 The toggle(value) method, if the given value already exists in the list, deletes it; if the given value does not exist in the list, adds it. A small example is as follows:

 

HTML code

<p class="li meng long">梦龙小站</p>

梦龙小站

 

JavaScript code

//切换类名 meng

//获取要删除类名li的p
var p = document.getElementsByTagName("p");
var i, len;

for(i=0, len = p.length; i< len; i++){
	p[i].classList.toggle("meng");
}


alert("p[0].className: " + p[0].className)  //p[0].className: li long
alert("p[1].className: " + p[1].className)  //p[1].className: li meng long
 

Preview effect


HTML5 actual combat and analysis of classList attribute

## Small examples about classList have been presented to you. These small methods can be clearly demonstrated and explained through small examples. With classList, unless you need to delete all class names or completely rewrite the class attribute of the element, the className attribute is no longer needed, and there are many practical methods attached. Browsers that support the classList attribute include Firefox 3.6+ and Chrome.


The classList attribute of HTML5 actual combat and analysis is introduced here. The accumulation of bit by bit is tomorrow’s success. If you learn a little HTML5 in one day, you will definitely learn it successfully one day. Thank you all for supporting Menglong Station. For more updates about HTML5, please pay attention to Menglong Station’s updates on HTML5 practice and analysis.


The above is the content of the classList attribute of HTML5 actual combat and analysis. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn