javascript输入标记未设置id或类
我有一个表,其中包含从MySql查询创建的输入行。用户可以更改这些行,但他/她也可能希望添加新行。因此,我创建了一个javascript函数,在单击按钮时添加一个新行。新行创建正确,但输入标记未获取其id或类javascript输入标记未设置id或类,javascript,Javascript,我有一个表,其中包含从MySql查询创建的输入行。用户可以更改这些行,但他/她也可能希望添加新行。因此,我创建了一个javascript函数,在单击按钮时添加一个新行。新行创建正确,但输入标记未获取其id或类 function addrow(id) { var tableref = document.getElementById(id); var nextseq = document.getElementById('maxseq').value; var newRow = t
function addrow(id) {
var tableref = document.getElementById(id);
var nextseq = document.getElementById('maxseq').value;
var newRow = tableref.insertRow(2);
var rowid = "tr"+nextseq;
//first cell
var cell1 = newRow.insertCell(0) ;
var text1 = document.createTextNode(nextseq);
cell1.appendChild(text1);
var id1 = "cell" + nextseq + "1";
cell1.id = id1;
//second cell
var id2 = "cell" + nextseq + "2";
var cell2 = newRow.insertCell(1).innerHTML = '<input type = "text" id = id2 class = "xxx" style = "width:100px" value = "1001-01-01" >';
// var test = document.getElementById(id2);
//alert("test is " + test);
...more stuff which is working fine ...
}
警报说abc是[对象HTMLCollection]
如何修复此问题以使id和类正常工作?既然id2是一个变量,您应该这样使用
var cell2 = newRow.insertCell(1).innerHTML = '<input type = "text" id =' + id2 + 'class = "xxx" style = "width:100px" value = "1001-01-01" >';
var cell2=newRow.insertCell(1.innerHTML=”;
您需要将变量连接到字符串中。JS没有字符串插值
var id2 = "cell" + nextseq + "2";
var cell2 = newRow.insertCell(1).innerHTML = '<input type = "text" id = ' + id2 + ' class = "xxx" style = "width:100px" value = "1001-01-01" >';
然后我会把宽度:100px代码>样式信息在CSS中,而不是在元素上。但如果必须在那里,那么:
input.style.width = "100px";
alert()
给出了[HTMLCollection]
,因为这是从getElementsByClassName()
返回的。不确定您要查找的输出。id=“+id2+”。。。变量字符串连接您好,第二种方法看起来不错,因为我确实希望将id和类附加到输入标记上。我实际上将您的代码复制到了我的函数中,但它没有运行。不知道为什么。然而,它确实提供了一个线索,我得到了类似的工作。谢谢。是的,很有效。但是(参见下面的答案2),我的方法不是一个好方法,因为我需要将id和类附加到输入标记,而不是单元格。
var cell2 = newRow.insertCell(1);
var input = cell2.appendChild(document.createElement('input'));
input.id = "cell" + nextseq + "2";
input.className = "xxx";
input.value = "1001-01-01";
input.style.width = "100px";