javascript 的一个问题.........................

正在学习js,遇到一个问题:
    用js代码向table添加一行后,无法取得文本框的值,代码如下:
HTML代码:


<table id = "myTable" border="1" width="40%" bordercolor="#BCD2EE" cellpadding="0" cellSpacing="0" align="center">
<tr>
<td>
<input type="text" name="file" id="file0" value="" size="100"/>
</td>
</tr>
<tr>
<td>
<div align="right" >
<input type="button" name="addRow" id="addRow" value="addRow" onclick="addRow('myTable')"/>
</div>
</td>
</tr>
</table>

js代码如下:

function addRow(myTable){
var objTable = document.getElementById(myTable);
var rowLength = objTable.rows.length;
var newRow = objTable.insertRow(rowLength-1);//insert before 'rowLength-1'
var newCell = newRow.insertCell(0);
var fileId = rowLength-newRow.rowIndex-1
//var txt = "<input type='text'"+" name='file"+ fileId + "'" + "id ='file" +fileId+ "'" + " value='' size='100'/>"
var txt = "<input type='text'"+" name='file' id ='file" +fileId+ "'" + " value='' size='100'/>"
newCell.innerHTML =txt;
//alert(document.getElementById("file"+fileId).value);
//alert(rowLength);
}

function getTable(){
var objIdex;
var objInput = document.getElementsByName("file");
for(objIndex in objInput){

    //alert(objInput[objIndex].value);
    //alert(objIndex);
    //alert(objInput[objIndex]);
    if(isNaN(objInput[objIndex])){
        alert(objInput[objIndex]);
        //objInput[objIndex].value = "";
    }
}



老是提示没有定义或是没有反映,而用下面的方法却能得到:

for (var i=0;i<objInput.length;i++){
alert(objInput[i].value);
}


for .... in 上面这种循环有上面区别?????
问题补充
我试了,在IE下显示length、file、file,在Firefox下显示了你所说的内容。
谢谢,明白了对DOM又有了新的认识!!!

当你使用
[code="javascript"]
alert(objIndex)
[/code]
进行DEBUG的时候,你会发现你列出的还包括了DOM以外的Array.prototype元素,因为一个DOM QUERY里,比如document.getElementsByTagName, 还包含了下列元素:
length, item, namedItem, 其中item和namedItem是函数,length是给出的DOM元素的个数,也就是一个DOM QUERY的格式是这样的:
[code="javascript"]
{
“0”:{
//第一个检索出的TAG == 'file'的所有DOM元素
},
length:1,
item:function(){//内嵌函数item},
namedItem:function(){//内嵌函数namedItemneiq}
}
[/code]
你在for(var i=0;i<l;i++){} 里是无法获得数组以外的元素的,所以推荐你不要用for(var x in xx){}在DOM检索里

[code="js"]
$(function(){
$(":text[pid]").blur(function(){
$.post("${initParam.domain}/ModifyQuantity.do", {id:$(this).attr("pid"),quantity:$(this).val()},modHandler,"json");
});
});
function modHandler(json){
$("tr[pid="+ json.id +"] td:eq(6)").text("¥"+json.itemSum).effect("highlight",{},4000);;
$("#finalSaved").text("¥"+json.finalSaved).effect("highlight",{},4000);
$("#finalTotal").text("¥"+json.finalTotal).effect("highlight",{},4000);
$("#ajaxMsg").hide().fadeIn(1000).fadeOut(3000);
}
[/code]

[code="js"]
$(function(){

$(":text[pid]").blur(function(){

$.post("${initParam.domain}/ModifyQuantity.do",
{id:$(this).attr("pid"),quantity:$(this).val()},
modHandler,"json");

});

});

function modHandler(json){

$("tr[pid="+ json.id +"] td:eq(6)")
.text("¥"+json.itemSum).effect("highlight",{},4000);;

$("#finalSaved").text("¥"+json.finalSaved).effect("highlight",{},4000);

$("#finalTotal").text("¥"+json.finalTotal).effect("highlight",{},4000);

$("#ajaxMsg").hide().fadeIn(1000).fadeOut(3000);

}
[/code]

[code="js"]
$(function(){

$(":text[pid]").blur(function(){//处理输入框的失去焦点事件
//通过JQuery的post函数发起Ajax请求

$.post("${initParam.domain}/ModifyQuantity.do",

{id:$(this).attr("pid"),quantity:$(this).val()},

modHandler,"json");

});

});

function modHandler(json){//回调函数,取得JSON数据更新相应页面数据

$("tr[pid="+ json.id +"] td:eq(6)")

.text("¥"+json.itemSum).effect("highlight",{},4000);;

$("#finalSaved").text("¥"+json.finalSaved).effect("highlight",{},4000);

$("#finalTotal").text("¥"+json.finalTotal).effect("highlight",{},4000);

$("#ajaxMsg").hide().fadeIn(1000).fadeOut(3000);

}
[/code]

[code="js"]
$(function(){

$(":text[pid]").blur(function(){//处理输入框的失去焦点事件

//通过JQuery的post函数发起Ajax请求

$.post("${initParam.domain}/ModifyQuantity.do",

{id:$(this).attr("pid"),quantity:$(this).val()},

modHandler,"json");
});

});

function modHandler(json){//回调函数,取得JSON数据更新相应页面数据

$("tr[pid="+ json.id +"] td:eq(6)")

.text("¥"+json.itemSum).effect("highlight",{},4000);
$("#finalSaved").text("¥"+json.finalSaved).effect("highlight",{},4000);

$("#finalTotal").text("¥"+json.finalTotal).effect("highlight",{},4000);
$("#ajaxMsg").hide().fadeIn(1000).fadeOut(3000);

}
[/code]

[code="js"]
$(function(){

$(":text[pid]").blur(function(){//处理输入框的失去焦点事件
//通过JQuery的post函数发起Ajax请求
$.post("${initParam.domain}/ModifyQuantity.do",
{id:$(this).attr("pid"),quantity:$(this).val()},
modHandler,"json");
});
});

function modHandler(json){//回调函数,取得JSON数据更新相应页面数据
$("tr[pid="+ json.id +"] td:eq(6)")

.text("¥"+json.itemSum).effect("highlight",{},4000);
$("#finalSaved").text("¥"+json.finalSaved).effect("highlight",{},4000);
$("#finalTotal").text("¥"+json.finalTotal).effect("highlight",{},4000);
$("#ajaxMsg").hide().fadeIn(1000).fadeOut(3000);

}
[/code]

document.form1.getelementbyname取得的是一个值,不是一个数组,不需要循环,如果要返回数组,可以用document.form1.elements