请问当对象数组删除到只剩最后一个元素时还是数组吗? 是因为控件对象已经不存在了,所以对其的任何操作都会出错提示没定义(undefined)也就不是很奇怪了~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要是 typeof 是 number 的话应该是数组看看你的循环控制有没有问题 是这样的,如果每插入一行就创建一个文本框的话,并且命名有一定规律,例如:text1、text2、text3...。如果把最后一行删除掉,文本框text3也同时会被删除掉。这个时候要对text3操作,当然会提示对象不存在。只是这个意思... 自己测试一下不就行了?<form name='form1'><input type=text name=aaa><input type=text name=aaa><input type=text name=aaa><input type=text name=aaa value='test'></form><SCRIPT LANGUAGE="JavaScript"><!--alert(form1.aaa[3].value); //==========>test//--></SCRIPT>--------------------------------------------------------<form name='form1'><input type=text name=aaa value='test'></form><SCRIPT LANGUAGE="JavaScript"><!--alert(form1.aaa[3].value); //=======>form1.aaa.3不是对象//--></SCRIPT>--------------------------------------------------------<form name='form1'><input type=text name=aaa value='test'></form><SCRIPT LANGUAGE="JavaScript"><!--alert(form1.aaa.value); //===========>test//--></SCRIPT>---------------------------------------------------------结果:form元素有name属性,当name相同的元素超过二个以上时则自动转化为对象数组如果只有一个时,则为单一对象 删掉后生最后一个id项,这个id就不是数组,判断一下就行了if(obj.constructor!=Array){ alert(obj);}else{ for(i=0;i<obj.length;i++){ alert(obj[i]); }} 是alert(obj.value)和alert(obj[i].value) document.frmmain.aa_md[n] //用这种方式取数组本身会有问题的, 标准的做法是:document.getElementsByName("aa_md"); //判断其 length 是否大于0 var el = document.frmmain.elements["el_md"];var len = el ? (el.length ? el.length : 0) : 0document.getElementsByName不是标准做法,form对象不同,名字相同就会出错了 document.getElementsByName不是标准做法,form对象不同,名字相同就会出错了可以把form对象加在选择域里:document.formName.getElementsByName("aa_md"); //谢谢阿信 jqeury中参数缺省问题 关于windows.open javascript 里面有类,为什么又要有原型的存在? 新手对代码不理解? getElementsByTagName查找节点的问题 火狐爆这个错误TypeError: c.getRootNode is not a function 求救JS正则表达式 如何想js文件里面传递变量? javascript的execCommand功能好强,但..(好多分) 一些基础测试题,才刚学JS,网上也搜不到,求大神帮忙看看 急:如何实现在页面刷新的情况下,输入文本框或者文本域中的内容不丢失 如何在表单提交之前统计所选的复选框的数量?
看看你的循环控制有没有问题
<input type=text name=aaa>
<input type=text name=aaa>
<input type=text name=aaa>
<input type=text name=aaa value='test'>
</form>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert(form1.aaa[3].value); //==========>test
//-->
</SCRIPT>
--------------------------------------------------------
<form name='form1'>
<input type=text name=aaa value='test'>
</form>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert(form1.aaa[3].value); //=======>form1.aaa.3不是对象
//-->
</SCRIPT>
--------------------------------------------------------
<form name='form1'>
<input type=text name=aaa value='test'>
</form>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert(form1.aaa.value); //===========>test
//-->
</SCRIPT>
---------------------------------------------------------
结果:
form元素有name属性,当name相同的元素超过二个以上时则自动转化为对象数组
如果只有一个时,则为单一对象
if(obj.constructor!=Array){
alert(obj);
}else{
for(i=0;i<obj.length;i++){
alert(obj[i]);
}
}
document.getElementsByName("aa_md"); //判断其 length 是否大于0
var len = el ? (el.length ? el.length : 0) : 0document.getElementsByName不是标准做法,form对象不同,名字相同就会出错了
可以把form对象加在选择域里:
document.formName.getElementsByName("aa_md"); //谢谢阿信