让getElementsByName适应IE和firefox的方法

w3c规范中getElementsByName是按着name属性进行检索的,而MS的IE却是按着id来检索。导致不能得到应该得到的Elements,为适应浏览器,我们可以做一下调整: 
一、把需要用getElementsByName的name都加上id,且id和name相同。 
二、用一个函数来适应浏览器,代码如下: 


代码如下:

getElementsByName:function (name) {  
      var returns = document.getElementsByName(name);  
      if(returns.length > 0) return returns;  
      returns = new Array();  
      var e = document.getElementsByTagName('td');  
      for(i = 0; i < e.length; i++) {  
                if(e[i].getAttribute("name") == name) {  
                           returns[returns.length] = e[i];  
                }  
       }  
       return returns;  
}

(0)

相关推荐

  • Document:getElementsByName()使用方法及示例

    定义和用法 getElementsByName() 方法可返回带有指定名称的对象的集合. 语法document.getElementsByName(name) 该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性. 另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素. 实例 复制代码 代码如下:

  • js中通过getElementsByName访问name集合对象的方法

    1.查找给定name属性的所有元素,这个方法将返回一个节点集合,也可以称为对象集合. 2.这个集合可以作为数组来对待,length属性的值表示集合的个数. 3.因为在html页面中,name不能唯一确定一个元素,所以方法的名称为getElementsByName而不是getElementByName <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x

  • javascript getElementsByName()的用法说明

    我们来看: oEle= document.all.aaa ;//这里有一个aaa的对象,但我们不知道它现在长度是多少,所以没办法对它操作.因此,我们要先做判断长度的过程.如下: if(oEle.length){}else{}; 在两种情况下,花括号里面的内容写法也是不一样的: 复制代码 代码如下: if(oEle.length){ for(var i = 0 ;i<oEle.length;i++){ oEle[i].value........ } } else{ oEle.value......

  • 让getElementsByName适应IE和firefox的方法

    w3c规范中getElementsByName是按着name属性进行检索的,而MS的IE却是按着id来检索.导致不能得到应该得到的Elements,为适应浏览器,我们可以做一下调整:  一.把需要用getElementsByName的name都加上id,且id和name相同.  二.用一个函数来适应浏览器,代码如下:  复制代码 代码如下: getElementsByName:function (name) {         var returns = document.getElements

  • jQuery.autocomplete 支持中文输入(firefox)修正方法

    但唯一遗憾的是,在对中文输入法打开时,firefox3.0中是对中文拼音的自动匹配,而对输入后的中文无法及时触发匹配:而在我的IE6.0下,则无此问题. 原因分析: Autocomplete插件对用户输入字符的触发自动匹配是通过"keydown"事件进行的(可分析jquery.autocomplete.js第 92行),在IE6中,当输入法打开时,输入的字符是不会触发"keydown"的,只有中文输入完毕才触发之,所以中文输入和latin文没有区别的:但在firef

  • js中eval详解

    eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: 复制代码 代码如下: var code1='"a" + 2'; //表达式 varcode2='{a:2}'; //语句 alert(eval(code1)); //->'a2' alert(eval(code2));

  • javascript eval函数深入认识

    (1)介绍javascript中的eval函数的用法 (2)如何在函数内执行全局代码 ►先来说eval的用法,内容比较简单,熟悉的可以跳过. eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: var code1='"a" + 2'; //表达式 var code2='{a:2

  • 深入认识javascript中的eval函数

    1)介绍javascript中的eval函数的用法 (2)如何在函数内执行全局代码 ►先来说eval的用法,内容比较简单,熟悉的可以跳过. eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: 复制代码 代码如下: var code1='"a" + 2'; //表达式 var c

  • 浅析document.createDocumentFragment()与js效率

    document.createDocumentFragment()说白了就是为了节约使用DOM.每次JavaScript对DOM的操作都会改变页面的变现,并重新刷新整个页面,从而消耗了大量的时间.为解决这个问题,可以创建一个文档碎片,把所有的新节点附加其上,然后把文档碎片的内容一次性添加到document中.这是我写的一个简单的测试页面: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo

  • AJAX聊天室V1.0发布

    插件名称:ChatRoom 插件版本:v1.0 插件作者:Clear 插件支持BLOG版本:PJBlog2 v2.5.0125 版本说明: 使PJBlog2支持用户即时交流; AJAX无刷新,可在任何页面内即时通讯(不支持HTML代码); 支持快捷键; 向前一条对话记录 快捷键:↑ 向后一条对话记录 快捷键:↓ 提交对话 快捷键:Enter或Ctrl + Enter 清除 快捷键:Ctrl + Delete; 保存历史聊天纪录; 自动聚焦到发送消息框; 支持FireFox; 安装方法: 将以下C

  • javascript基础之查找元素的详细介绍(访问节点)

    当然这些选择器都是jQuery扩展的一些方法,那么使用原生js时要怎样来查找元素呢?今天就来简单梳理下. DOM定义了多种查找元素的方法,除了我们常用的getElementById(),还有getElementsByTagName()和getElementsByName().使用这几种方法方法我们可以查找html文档中的任意html元素.getElementById()首先来看下getElementById(),这个方法很简单,只需在参数中传入html标签的id属性值即可,由于html页面中的i

  • 关于js获取radio和select的属性并控制的代码

    实现目标:1.点击"匿名小组",自动跳转:成员类型"私密群".访问控制 "群成员" 2.点击"公开群",  自动跳转:成员类型"实名小组"  首先是获得点击radio的事件,用的是jquery库,获得事件后判断是那个radio,通过判断是那个radio被checked了然后进行联动变换.其中遇到的问题有,兼容ie和firefox的事件,然后是设置select中的中options的selected属性. 兼容

随机推荐