Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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 DOM在需要的位置添加表行_Javascript_Html_Dom - Fatal编程技术网

Javascript DOM在需要的位置添加表行

Javascript DOM在需要的位置添加表行,javascript,html,dom,Javascript,Html,Dom,可能重复: 当前,此脚本在表的底部添加一行。如何告诉它将其添加到特定行之后?在桌子的最上面 <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(docum

可能重复:

当前,此脚本在表的底部添加一行。如何告诉它将其添加到特定行之后?在桌子的最上面

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

var i=1;
函数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.fontwweight='bold';
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);
}

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

您正在寻找
node.insertBefore()


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

您想避免使用jQuery吗?呃,另一个问题有点接近。如果你想在任何其他位置插入你需要的任何东西,那么就考虑使用,这样你就返回了节点,然后在之前使用<代码>插入。此外,考虑使用jQuery进行重DOM编辑,这不是HARD.LL,“考虑使用jQuery”…为什么?本地DOM操作并没有那么难。不要向OP吹嘘,当他们对语言很陌生时,就使用抽象库,这只会在以后伤害他们。此外,IE支持的NodeList非常糟糕,包括空格和注释。另一方面,在早期IE中只包含注释节点。更容易处理。谢谢你的建议。您的修改是否在顶部添加一行?新行不再显示。确定。我必须将(node.firstChild,tr)更改为(tr,node.firstChild)。
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);

}