0

我有一个有 n 行的表,第 8 和第 9 个单元格是可编辑的测试字段。我需要使用 Javascript 和 HTML DOM 提取这些字段的值。我尝试了不同的方法,但是每当我发出警报时,我都会得到   或什么都没有作为警报内容。

以下是创建语句:

//Input Fields
for(var i=1; i<=mmrows.length-3; i++)
{//mmrows is the source
    var input1 =document.createElement('input');
    var input2 =document.createElement('input');
    input1.setAttribute("type", "Text");
    input2.setAttribute("type", "Text");
    //input1.id='Inp1'.concat(i);// Tried to assign ID dynamically
    //input2.id='Inp2'.concat(i);
    input1.id='Inp1';
    input2.id='Inp2';
    input1.onkeypress=function(){
        return isNumberKey(arguments[0]);
    }//for validation

    var t1=document.createElement("td");
    t1.appendChild(input1);
    valrows[i+1].cells[8].appendChild(t1);  
    var t2=document.createElement("td");
    t2.appendChild(input2);

    valrows[i+1].cells[9].appendChild(t2);  
}

我正在尝试在另一个函数中提取值并尝试以下操作:

var cells=document.getElementsByTagName('td');
alert(cells.length);
alert(cells[8].innerText);
alert(cells[8].innerHTML);

alert(trim(valrows[i].cells[8].innerHTML));
alert(trim(valrows[i].cells[9].innerHTML));

var str='Inp1'.concat(i);
var str1='Inp2'.concat(i);
alert(document.getElementsById(str).value); //Dynamic ID
alert(document.getElementsById(str1).value);

var tblcells = valrows[i].cells; 
alert(tblcells);
for(var j=0; j<tblcells.length; j++)
{
    alert(tblcells[j].firstElementChild.value);
} ​

请告诉我需要进行哪些更改才能获取文本字段值。

4

1 回答 1

0

我已经解决了这个问题!实际上这是我自己的一个错误;我尝试通过说 getElement(s)ById 来访问文本值 - 不需要 s。

所以我能够通过使用循环变量 i 并在类似的循环中通过 getElementById 访问它来动态地将“id”分配给这些文本单元格。

谢谢!

于 2012-09-26T09:00:18.460 回答