封裝自己的元素獲取方法,使元素獲取變得簡便
注意:1、應該要防止定義的被重寫,可將同名的重新定義
2、可將封裝的對象置為全局對象,方便使用
通過id查找單個元素
封裝方式:
//通過id查找單個元素 (function (document){ //防止覆蓋 var _overwrite = window._, _; _ = { $ : function(id){ return typeof id === "string" ? document.getElementById(id) : id; } } //將_置為全局對象 window._ = _; })(document);
測試:
<!DOCTYPE html> <html> <body> <div id = "cloud">The cloud is beautiful</div> </body> <script><!-- (function (document){ //防止覆蓋 var _overwrite = window._, _; _ = { $ : function(id){ return typeof id === "string" ? document.getElementById(id) : id; } } //將_置為全局對象 window._ = _; })(document); var cloud = _.$("cloud"); alert(cloud.innerHTML); //The cloud is beautiful --></script> </html>
通過ID獲取多個元素
封裝方式:
//通過id查找一個或者多個元素 (function (document){ //防止覆蓋 var _overwrite = window._, _; _ = { $ : function(/*ids....*/){ var elements = {}, id, elt; for(var i = 0, len= arguments.length; i < len; i++){ id = arguments[i]; elt = document.getElementById(id); if(elt === null){ throw new Error("No element with id:" + id); } if(len === 1){ return elt; } elements[id] = elt; } return elements; } } //將_置為全局對象 window._ = _; })(document);
測試:
<div id = "cloud">The cloud is beautiful</div> <div id = "sea">The white white sea</div> //獲取單個元素 var cloud = _.$("cloud"); alert(cloud.innerHTML);//The cloud is beautiful //獲取多個元素 var all = _.$("cloud", "sea"); alert(all.cloud.innerHTML + "," + all.sea.innerHTML); //The cloud is beautiful,The white white sea