`
haofeng82
  • 浏览: 141098 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

用脚本创建的元素在IE中用getElementsByName()获取不到

阅读更多

在程序中需要动态的创建一个复选框并在页面上显示,但是用document.getElementsByName()取的时候却取不到,经测试,在firefox和opera中是完全能够取到的,看来又是ie的问题了

又试着创建了一个div,还是取不到,看来不光是表单元素有这个问题

解决方式:用document.getElementsByTagName

如下:

var deleteButtonArray=document.getElementsByTagName("input");
for(var i=0;i<deleteButtonArray.length;i++){
if(deleteButtonArray[i].type=="checkbox"&&deleteButtonArray[i].name=="ELEMENTNAME"){
//取到元素进行操作
}

}

测试代码如下:

<html>
<body>
<table>
<tr id="tr1">
<td id="s1">

</td>
</tr>
<tr id="tr1">
<td id="s2">

</td>
</tr>
</table>
</body>
</html>

<script>
var td1=document.getElementById("s1");
//一个复选框
var checkbox =document.createElement("input");
checkbox.type="checkbox";
checkbox.name="commonDeleteCheckBox";
checkbox.setAttribute("name","commonDeleteCheckBox");
checkbox.onclick=function(){
alert(this.name);
};
checkbox.value="";
//加入td1中
td1.appendChild(checkbox);

//一个层
var div1 =document.createElement("div");
div1.innerHTML="checkbox";
div1.name="DDD";
div1.setAttribute("name","DDD");
checkbox.onclick=function(){
alert(this.name);
};
//加入td1中
td1.appendChild(div1);

alert(document.getElementsByName("commonDeleteCheckBox").length);
alert(document.getElementsByName("DDD").length);
</script>

分享到:
评论

相关推荐

    IE中getElementsByName()对有些元素无效的解决方案

    注意:在IE下有些节点是没有name 属性的,就是用document.getElementsByName获取不到的。只有下面的tag有name属性: A, APPLET, attribute, BUTTON, EMBED, FORM, IMG, INPUT type=button, INPUT type=checkbox, ...

    详解JavaScript 中getElementsByName在IE中的注意事项

    在IE5-9中是没有实现js的 getElementsByClassName()方法,但是实现了getElementsByName()方法,但是需要注意的是这个方法在IE5-9中也返回id属性匹配的指定元素,为了兼容,应该小心谨慎使用,不要将同样的字符串同时用作...

    让getElementsByName适应IE和firefox的方法

    导致不能得到应该得到的Elements,为适应浏览器,我们可以做一下调整: 一、把需要用getElementsByName的name都加上id,且id和name相同。 二、用一个函数来适应浏览器,代码如下: 代码如下:getElementsByName:...

    JavaScript 数据元素集合与数组的区别说明

    其中getElementsByName(name)方法是获取页面中所有具有name属性的元素,但这个方法在IE与标准浏览器中所取到的内容不一样。在IE中getElementsByName(name)方法所取到的元素是其本身就自带有name属性也就是form表单中...

    document.getElementsByName()的用法

    详细介绍并对比了document.getElementsByName()和document.getElementByNId()的用法,并进行了深入的比较,还有例子加以讲解说明。

    innerHTML 和 getElementsByName 在IE下面的bug 的解决

    innerHTML 真的一个麻烦的东西。IE 和 firefox 对dom 处理的方式不是很一样。IE 对动态加载的很多dom 不支持动态更新。

    foreach.js低版本IE数组和HTMLCollection元素集合不兼容forEach循环遍历的处理方法

    要想循环遍历可以用forEach,但是在低于ie9的版本下不兼容 var list= document.getElementsByName("name"); for (var i = 0; i ; i++) { console.log(list[i].id); //second console output }

    document.getElementsByName和document.getElementById 在IE与FF中不同实现

    ^) 但是对于document.getElementsByName 与document.getElementById 这个两个方法,IE中是并没有严格区分 ID 与 Name 的,比如: [removed] function useGetElementsByNameWithId(id) { var eles = d

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

    另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。 实例 代码如下: &lt;html&gt; &lt;head&...

    JavaScript获取页面上某个元素的代码

    W3C标准推荐的语法是通过document文档对象获取DOM树内的内的某个元素,常见的方法有getElementById()、getElementsByName()、getElementsByTagName(),他们的作用分别通过id属性、name属性/标签名称返回单个...

    编译的 HTML 帮助文件 (.chm) DHTML手册

    onfocusout 在移动焦点到其它元素之后立即触发于当前拥有焦点的元素上触发。 onhelp 当用户在浏览器为当前窗口时按 F1 键时触发。 onkeydown 当用户按下键盘按键时触发。 onkeypress 当用户按下字面键时触发。 ...

    详解JS获取HTML DOM元素的8种方法

    文档对象模型(Document Object Model),是W3...JS获取DOM元素的方法(8种) 通过ID获取(getElementById) 通过name属性(getElementsByName) 通过标签名(getElementsByTagName) 通过类名(getElementsByClass

    常用的一些javascript脚本样例

    23 getElementsByName getElementsByName 24 文本框切换 文本框切换(包括用Tab和回车),文本框获得失去焦点 25 图片浮动(鼠标事件(点击)) 图片浮动(点击停止) 26 图片浮动(鼠标事件) 图片浮动(鼠标事件) 27 ...

    JavaScript中获取HTML元素值的三种方法

    2、getElementsByName()方法:通过name取得元素,是一个数组。 3、getElementsByTagName()方法:通过HTML标签取得元素,是一个数组。 如果要取得值可以使用value,如:var x=document.getElementById(“id”).value;...

Global site tag (gtag.js) - Google Analytics