獲取DOM對象的幾種擴展及簡寫
更新時間:2006年10月09日 00:00:00 作者:
參照prototype.js中getElementsByClassName的思想,擴展出幾種在DEOM操作中可經常用到的獲取對象的方法,使用獲取對象變得更方便、更精確了:
document.getElementsByClassName = function(className,oBox) {
//適用于獲取某個HTML區(qū)塊內部含有某一特定className的所有HTML元素
this.d= oBox || document;
var children = this.d.getElementsByTagName('*') || document.all;
var elements = new Array();
for (var ii = 0; ii < children.length; ii++) {
var child = children[ii];
var classNames = child.className.split(' ');
for (var j = 0; j < classNames.length; j++) {
if (classNames[j] == className) {
elements.push(child);
break;
}
}
}
return elements;
}
document.getElementsByType = function(sTypeValue,oBox) {
//適用于獲取某個HTML區(qū)塊內部同屬于某一特定type的所有HTML元素,如:input,script,link等等
this.d= oBox || document;
var children = this.d.getElementsByTagName('*') || document.all;
var elements = new Array();
for (var ii = 0; ii < children.length; ii++) {
if (children[ii].type == sTypeValue) {
elements.push(children[ii]);
}
}
return elements;
}
function $() {
var elements = new Array();
for (var ii = 0; ii < arguments.length; ii++) {
var element = arguments[ii];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
$Cls = function (s,o){
return document.getElementsByClassName(s,o);
};
$Type = function (s,o){
return document.getElementsByType(s,o);
};
$Tag = function (s,o){
this.d=o || document;
return this.d.getElementsByTagName(s);
};
$Name = function (s){ //通過name的方式只能針對整個document而言,不能為其限定范圍
return document.getElementsByName(s);
};
document.getElementsByClassName = function(className,oBox) {
//適用于獲取某個HTML區(qū)塊內部含有某一特定className的所有HTML元素
this.d= oBox || document;
var children = this.d.getElementsByTagName('*') || document.all;
var elements = new Array();
for (var ii = 0; ii < children.length; ii++) {
var child = children[ii];
var classNames = child.className.split(' ');
for (var j = 0; j < classNames.length; j++) {
if (classNames[j] == className) {
elements.push(child);
break;
}
}
}
return elements;
}
document.getElementsByType = function(sTypeValue,oBox) {
//適用于獲取某個HTML區(qū)塊內部同屬于某一特定type的所有HTML元素,如:input,script,link等等
this.d= oBox || document;
var children = this.d.getElementsByTagName('*') || document.all;
var elements = new Array();
for (var ii = 0; ii < children.length; ii++) {
if (children[ii].type == sTypeValue) {
elements.push(children[ii]);
}
}
return elements;
}
function $() {
var elements = new Array();
for (var ii = 0; ii < arguments.length; ii++) {
var element = arguments[ii];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
$Cls = function (s,o){
return document.getElementsByClassName(s,o);
};
$Type = function (s,o){
return document.getElementsByType(s,o);
};
$Tag = function (s,o){
this.d=o || document;
return this.d.getElementsByTagName(s);
};
$Name = function (s){ //通過name的方式只能針對整個document而言,不能為其限定范圍
return document.getElementsByName(s);
};
您可能感興趣的文章:
相關文章
Javascript實現(xiàn)Vue跨組件通信的方法詳解
這篇文章主要為大家詳細介紹了Vue的跨組件通信,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03微信小程序實現(xiàn)多選框全選與反全選及購物車中刪除選中的商品功能
這篇文章主要介紹了微信小程序實現(xiàn)多選框全選與反全選及購物車中刪除選中的商品功能,本文通過截圖實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2019-12-12表單input項使用label同時引用Bootstrap庫導致input點擊效果區(qū)增大問題
這篇文章主要介紹了表單input項使用label,同時引用Bootstrap庫,導致input點擊效果區(qū)增大問題的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-10-10如何利用原生JS實現(xiàn)圖片預覽加上傳(前后端交互)
在做網站系統(tǒng)時經常會用到圖片上傳功能,用戶往往希望能看到自己上傳的圖片的樣子,下面這篇文章主要給大家介紹了關于如何利用原生JS實現(xiàn)圖片預覽加上傳,需要的朋友可以參考下2022-01-01uniapp開發(fā)小程序實現(xiàn)全局懸浮按鈕的代碼
這篇文章主要介紹了uniapp開發(fā)小程序如何實現(xiàn)全局懸浮按鈕,但是在uniapp中式沒有window對象,和dom元素的,需要獲取頁面上節(jié)點的幾何信息,具體實例代碼詳細跟隨小編一起看看吧2022-03-03JS實現(xiàn)的定時器展示簡單秒表、頁面彈框及跳轉操作完整示例
這篇文章主要介紹了JS實現(xiàn)的定時器展示簡單秒表、頁面彈框及跳轉操作,結合實例形式分析了JavaScript時間函數(shù)及頁面元素動態(tài)操作相關使用技巧,需要的朋友可以參考下2020-01-01