在程序中需要动态的创建一个复选框并在页面上显示,但是用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下有些节点是没有name 属性的,就是用document.getElementsByName获取不到的。只有下面的tag有name属性: A, APPLET, attribute, BUTTON, EMBED, FORM, IMG, INPUT type=button, INPUT type=checkbox, ...
在IE5-9中是没有实现js的 getElementsByClassName()方法,但是实现了getElementsByName()方法,但是需要注意的是这个方法在IE5-9中也返回id属性匹配的指定元素,为了兼容,应该小心谨慎使用,不要将同样的字符串同时用作...
导致不能得到应该得到的Elements,为适应浏览器,我们可以做一下调整: 一、把需要用getElementsByName的name都加上id,且id和name相同。 二、用一个函数来适应浏览器,代码如下: 代码如下:getElementsByName:...
其中getElementsByName(name)方法是获取页面中所有具有name属性的元素,但这个方法在IE与标准浏览器中所取到的内容不一样。在IE中getElementsByName(name)方法所取到的元素是其本身就自带有name属性也就是form表单中...
详细介绍并对比了document.getElementsByName()和document.getElementByNId()的用法,并进行了深入的比较,还有例子加以讲解说明。
innerHTML 真的一个麻烦的东西。IE 和 firefox 对dom 处理的方式不是很一样。IE 对动态加载的很多dom 不支持动态更新。
要想循环遍历可以用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中是并没有严格区分 ID 与 Name 的,比如: [removed] function useGetElementsByNameWithId(id) { var eles = d
另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。 实例 代码如下: <html> <head&...
W3C标准推荐的语法是通过document文档对象获取DOM树内的内的某个元素,常见的方法有getElementById()、getElementsByName()、getElementsByTagName(),他们的作用分别通过id属性、name属性/标签名称返回单个...
onfocusout 在移动焦点到其它元素之后立即触发于当前拥有焦点的元素上触发。 onhelp 当用户在浏览器为当前窗口时按 F1 键时触发。 onkeydown 当用户按下键盘按键时触发。 onkeypress 当用户按下字面键时触发。 ...
文档对象模型(Document Object Model),是W3...JS获取DOM元素的方法(8种) 通过ID获取(getElementById) 通过name属性(getElementsByName) 通过标签名(getElementsByTagName) 通过类名(getElementsByClass
23 getElementsByName getElementsByName 24 文本框切换 文本框切换(包括用Tab和回车),文本框获得失去焦点 25 图片浮动(鼠标事件(点击)) 图片浮动(点击停止) 26 图片浮动(鼠标事件) 图片浮动(鼠标事件) 27 ...
2、getElementsByName()方法:通过name取得元素,是一个数组。 3、getElementsByTagName()方法:通过HTML标签取得元素,是一个数组。 如果要取得值可以使用value,如:var x=document.getElementById(“id”).value;...