如何在 JavaScript 中没有 id 的 HTML table 中插入一行
How to insert a row in an HTML table without id in JavaScript
我在任何站点上都有 HTML table:
<table>
<tbody>
<tr>
<td>customer</td>
<td class="ltr" id="e6">2</td>
<td class="ltr" id="e9">2</td>
</tr>
</tbody>
我想做一些计算,return 一个数字,我写的 chrome 扩展名是这个代码:
var tradeActBox = document.createElement('tr');
var before = document.getElementById('e9');
tradeActBox.innerHTML =
'<td>power</td><td>buy</td><td>sell</td>';
insertAfter(tradeActBox, before);
}
function insertAfter(el, referenceNode) {
referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);
}
但问题是之前的 tr 标签没有关闭并像这样进行碰撞:
<tr>
<td>customer</td>
<td class="ltr highlight1" id="e6">2</td>
<td class="ltr highlight1" id="e9">2</td>
<tr>
<td>power</td>
<td>buy</td>
<td>sell</td>
</tr>
我想像下面的代码那样创建行:
<tr>
<td>customer</td>
<td class="ltr highlight1" id="e6">2</td>
<td class="ltr highlight1" id="e9">2</td>
</tr>
<tr>
<td>power</td>
<td>buy</td>
<td>sell</td>
</tr>
尝试以下 insertAfter()
的修改版本:
function insertAfter(el, referenceNode) {
referenceNode.parentNode.insertAdjacentElement('afterend', el);
}
这里我们使用 insertAdjacentElement()
在第一行结束后插入新的 table 行,这将在结束 </tr>
标记之后。
可在此处找到更多信息:Element.insertAdjacentElement()
我在任何站点上都有 HTML table:
<table>
<tbody>
<tr>
<td>customer</td>
<td class="ltr" id="e6">2</td>
<td class="ltr" id="e9">2</td>
</tr>
</tbody>
我想做一些计算,return 一个数字,我写的 chrome 扩展名是这个代码:
var tradeActBox = document.createElement('tr');
var before = document.getElementById('e9');
tradeActBox.innerHTML =
'<td>power</td><td>buy</td><td>sell</td>';
insertAfter(tradeActBox, before);
}
function insertAfter(el, referenceNode) {
referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);
}
但问题是之前的 tr 标签没有关闭并像这样进行碰撞:
<tr>
<td>customer</td>
<td class="ltr highlight1" id="e6">2</td>
<td class="ltr highlight1" id="e9">2</td>
<tr>
<td>power</td>
<td>buy</td>
<td>sell</td>
</tr>
我想像下面的代码那样创建行:
<tr>
<td>customer</td>
<td class="ltr highlight1" id="e6">2</td>
<td class="ltr highlight1" id="e9">2</td>
</tr>
<tr>
<td>power</td>
<td>buy</td>
<td>sell</td>
</tr>
尝试以下 insertAfter()
的修改版本:
function insertAfter(el, referenceNode) {
referenceNode.parentNode.insertAdjacentElement('afterend', el);
}
这里我们使用 insertAdjacentElement()
在第一行结束后插入新的 table 行,这将在结束 </tr>
标记之后。
可在此处找到更多信息:Element.insertAdjacentElement()