Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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_Html_Html Table - Fatal编程技术网

Javascript 在具有已知ID的表行之前或之后添加表行

Javascript 在具有已知ID的表行之前或之后添加表行,javascript,html,html-table,Javascript,Html,Html Table,在这样的表格中: <table> <!-- Insert Row of bun here --> <tr id="meat"> <td>Hamburger</td> </tr> <!-- Insert Row of bun here --> </table> function AddBefore(rowId){} function AddAfter(rowId){} 汉堡包 函数A

在这样的表格中:

<table>
<!-- Insert Row of bun here -->
  <tr id="meat">
   <td>Hamburger</td>
  </tr>
<!-- Insert Row of bun here -->
</table>

function AddBefore(rowId){}
function AddAfter(rowId){}

汉堡包
函数AddBefore(rowId){}
函数AddAfter(rowId){}
我需要在不使用jQuery的情况下创建方法。。我熟悉jQuery中的append after和append before。。但是我一直坚持使用普通js。

你想要的。与
nextSibling一起使用可在已知元素后插入。

使用

function AddBefore(rowId){
    var target = document.getElementById(rowId);
    var newElement = document.createElement('tr');
    target.parentNode.insertBefore(newElement, target);
    return newElement;
}

function AddAfter(rowId){
    var target = document.getElementById(rowId);
    var newElement = document.createElement('tr');

    target.parentNode.insertBefore(newElement, target.nextSibling );
    return newElement;
}

忘了说我也被IE7困住了。。如果在IE7中有效的话我会试试。。谢谢@支持的顺序;请参阅DHTML方法的MSDN列表:@Gaby您可能应该返回创建的行,以便使用它。此外,无需使用
appendChild
;此功能包含在
insertBefore
中。当第二个参数为
null
@Phrogz时,我无法重新创建您所说的内容。。参见@Gaby:IE7中的parentElement/parentNode异常/FF@Perpetualcoder,parentNode是交叉浏览器节点。因为它在DOM1()中,所以应该支持它吗。。我会调查的。。