原prototype.js有$()相当于 getElementById,却没有 getElementsByName 与 getElementsByTagName,因此这里可以做个扩展,定义 $N() 的功能等于getElementsByName,代码如下:

程序代码 程序代码
function $N() {
  return document.getElementsByName(arguments[0]);
}

需要注意的是,getElementsByName前面必须是document,不能为其他object,并且这里的ByName是很宽松的,只要元素的 name 或 id 属性值等于指定的值,就都返回回来。
扩展 getElementsByTagName 为 $T(),代码如下:

程序代码 程序代码
function $T() {  // $T('input','box')
    if (arguments.length==1){
      return document.getElementsByTagName(arguments[0]);
    }else if(arguments.length==2){
        if (typeof(arguments[1])=="object"){
           return arguments[1].getElementsByTagName(arguments[0]);
        }else{
           return $(arguments[1]).getElementsByTagName(arguments[0]);
        }
    }    
}

$T() 可以带两个参数,第一个参数是元素标签的名字,即tagName,第二个参数是指定查找的范围,可以是id也可以是object,如 $T("input",$("box")) 与 $T("input","box") 都是相同的意思,返回值都是在box元素下面的所有标签名为input的元素数组。其中第二个参数可选。

http://www.happyshow.org/article.asp?id=139
posted on 2007-02-08 16:10  mbskys  阅读(529)  评论(2)    收藏  举报