Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript输入标记未设置id或类_Javascript - Fatal编程技术网

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

我有一个表,其中包含从MySql查询创建的输入行。用户可以更改这些行,但他/她也可能希望添加新行。因此,我创建了一个javascript函数,在单击按钮时添加一个新行。新行创建正确,但输入标记未获取其id或类

  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";