1. 程式人生 > >解決getElementsByClassName()在IE8下的相容問題

解決getElementsByClassName()在IE8下的相容問題

getElementsByClassName,這個方法讓我們可以通過 class 屬性中的類名來訪問元素,但是IE9 以下的瀏覽器不支援 。為解決這個問題,我們寫一個相容函式 getByClass() 實現在IE低版本和現代瀏覽器中都能通過類名來獲取節點。

function getByClass(name){
				//如果瀏覽器支援 會得到一個函式體
				if(document.getElementsByClassName){
					return document.getElementsByClassName(name);
				}
				//把所有的元素獲取到
				var allItems = document.getElementsByTagName("*");
				var newArr = [];
				//查詢每一個元素的className 看其中含不含name
				for(var i = 0; i < allItems.length; i++){
					var classNames = allItems[i].className;//"test test11"
					var arrClass = classNames.split(" ");
					for(var j = 0; j < arrClass.length; j++){
						if(arrClass[j]==name){
							newArr.push(allItems[i]);
						}
					}
				}
				return newArr;
			}