Javascript 如何在表格中自动插入行?

Javascript 如何在表格中自动插入行?,javascript,google-chrome,html-table,insert,tampermonkey,Javascript,Google Chrome,Html Table,Insert,Tampermonkey,我曾尝试过一种为新表插入代码的愚蠢方法,但这似乎都不管用。正确的方法是什么? 以下是我试图做的: var table = document.getElementsByClassName("test") [0].getElementsByClassName("tableclass"); for (var i = 0, l = table.length; i < l; i++) { var content = table[i]; let s = content.innerHTML;

我曾尝试过一种为新表插入代码的愚蠢方法,但这似乎都不管用。正确的方法是什么? 以下是我试图做的:

var table = document.getElementsByClassName("test")
[0].getElementsByClassName("tableclass");
for (var i = 0, l = table.length; i < l; i++) {
  var content = table[i];
  let s = content.innerHTML;
  s = s.replace(/table/g, 'table border="1"');
  s = s.replace(/tr>[\s\S]*?<tr>[\s\S]*?<td>3/g, 'tr>\r\n<tr>\r\n<td>3');
  content.innerHTML = s;
}
var table=document.getElementsByClassName(“测试”)
[0].getElementsByClassName(“tableclass”);
对于(变量i=0,l=table.length;i[\s\s]*?[\s\s]*?3/g,'tr>\r\n\r\n3');
content.innerHTML=s;
}
还有小提琴:


另外,我愚蠢的方法没有包含整个表的原因是,我希望最终使用它的某些单元格将包含随机数据,我不知道如何跳过这些数据。

我会使用insertAdjacentHTML,如下所示:

表[i].insertAdjacentHTML('beforeend','56');

请看这把小提琴:


还演示了如何设置边界。请注意,这段代码针对所有表,因此根据您的情况,您可能需要更具体一些。

我会使用insertAdjacentHTML,如下所示:

表[i].insertAdjacentHTML('beforeend','56');

请看这把小提琴:


还演示了如何设置边界。请注意,这段代码针对所有表,因此根据您的情况,您可能需要更具体一些。

如果您想创建新的HTML元素,每个浏览器都会涉及到这一点

var tr = document.createElement('tr');
console.log(tr);
浏览器控制台将准确显示您所创建的内容—一个尚未成为DOM一部分的新HTML元素:

<tr></tr>
结果将是两个td要素:

<td>5</td>   <td>6</td>
结果是一个完整的表行:

var td1 = document.createElement('td'),
    td2 = document.createElement('td');
td1.innerText = '5';
td2.innerText = '6';
console.log(td1, td2);
<tr><td>5</td><td>6</td></tr>
您创建的元素现在是要执行的表体的DOM子元素的一部分

编辑

如果要将新行插入到特定位置,则必须找到应位于新行旁边并使用的元素。这会将最后一段代码更改为:

var targetTr = document.querySelector('.test table tr:nth-child(2)');
targetTr.parentNode.insertBefore(tr, targetTr);
如果要选择在javascript中放置新行的位置,可以使用childNodes属性:

console.log(table.childNodes);

如果您想创建一个新的HTML元素,每个浏览器都会让您了解它

var tr = document.createElement('tr');
console.log(tr);
浏览器控制台将准确显示您所创建的内容—一个尚未成为DOM一部分的新HTML元素:

<tr></tr>
结果将是两个td要素:

<td>5</td>   <td>6</td>
结果是一个完整的表行:

var td1 = document.createElement('td'),
    td2 = document.createElement('td');
td1.innerText = '5';
td2.innerText = '6';
console.log(td1, td2);
<tr><td>5</td><td>6</td></tr>
您创建的元素现在是要执行的表体的DOM子元素的一部分

编辑

如果要将新行插入到特定位置,则必须找到应位于新行旁边并使用的元素。这会将最后一段代码更改为:

var targetTr = document.querySelector('.test table tr:nth-child(2)');
targetTr.parentNode.insertBefore(tr, targetTr);
如果要选择在javascript中放置新行的位置,可以使用childNodes属性:

console.log(table.childNodes);

非常感谢您的详细解释。有没有办法选择在哪里添加那一行?我做了一个编辑,应该会给你一个答案。非常感谢你的详细解释。有没有办法选择在哪里添加那一行?我已经做了一个编辑,应该会给你一个答案。