3

可能重复:
如何在不使用库的情况下在 JavaScript 中插入 After()?

目前,此脚本在表格底部添加一行。我如何告诉它在特定行之后添加它?在桌子的顶部?

<script>
var i = 1;

function changeIt() {
var tr = document.createElement('tr');
var td = tr.appendChild(document.createElement('td'));
td.style.valign = 'middle';

var span = td.appendChild(document.createElement('span'));
span.style.fontWeight = 'bold';
span.appendChild(document.createTextNode('URL ' + i));

td = tr.appendChild(document.createElement('td'));
var input = td.appendChild(document.createElement('input'));
input.name = 'url' + ++i;
input.type = 'text';
input.size = '40'

document.getElementById('myTable').tBodies[0].appendChild(tr);

}
</script>

我一直在搜索 Google 来学习,但我不断遇到 jQuery、innerhtml 和 insertrow 答案。

4

1 回答 1

1

您正在寻找node.insertBefore() https://developer.mozilla.org/en-US/docs/DOM/Node.insertBefore

var i = 1;

function changeIt() {
    var tr = document.createElement('tr');
    var td = tr.appendChild(document.createElement('td'));
    td.style.valign = 'middle';

    var span = td.appendChild(document.createElement('span'));
    span.style.fontWeight = 'bold';
    span.appendChild(document.createTextNode('URL ' + i));

    td = tr.appendChild(document.createElement('td'));
    var input = td.appendChild(document.createElement('input'));
    input.name = 'url' + ++i;
    input.type = 'text';
    input.size = '40'
    var node = document.getElementById('myTable').tBodies[0];
    node.insertBefore(tr, node.firstChild);

}

要添加到特定位置,您需要知道.children. 否则,一些关键标识符(类名、属性或 ID),您可以传递给 getBy 或 QSA。

于 2012-12-19T00:31:56.457 回答