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添加HTML元素_Javascript_Html_Dom - Fatal编程技术网

使用JavaScript添加HTML元素

使用JavaScript添加HTML元素,javascript,html,dom,Javascript,Html,Dom,所以,如果我有这样的HTML: <div id='div'> <a>Link</a> <span>text</span> </div> $('#div a').after("Your html element"); $('#div a').after('<p>html element to add</p>'); 链接 文本 如何使用JavaScript在该空行所在的位置添加HTML

所以,如果我有这样的HTML:

<div id='div'>
  <a>Link</a>

  <span>text</span>
</div>
$('#div a').after("Your html element");
$('#div a').after('<p>html element to add</p>');

链接
文本

如何使用JavaScript在该空行所在的位置添加HTML元素?

如果要使用类似jQuery的内容,可以执行以下操作:

<div id='div'>
  <a>Link</a>

  <span>text</span>
</div>
$('#div a').after("Your html element");
$('#div a').after('<p>html element to add</p>');

由于您没有提到任何javascript库的使用(如jquery、dojo),这里有一些纯javascript

var txt = document.createTextNode(" This text was added to the DIV.");
var parent = document.getElementById('div');
parent.insertBefore(txt, parent.lastChild);


jQuery有一个很好的内置函数:after(),位于

在您的情况下,您可能需要这样一个选择器:

<div id='div'>
  <a>Link</a>

  <span>text</span>
</div>
$('#div a').after("Your html element");
$('#div a').after('<p>html element to add</p>');
$('#div a')。在('要添加的html元素

')之后;

上面给出的链接中的代码示例还显示了如果jQuery对您来说是新的,如何加载它。

假设您只添加了一个元素:

document.getElementById("div").insertBefore({Element}, document.getElementById("div").children[2]);

与处理
的子元素不同,与其他答案一样,如果您知道总是要在
元素后插入,请为其指定一个ID,然后可以相对于其同级插入:

<div id="div">
  <a id="div_link">Link</a>

  <span>text</span>
</div>
这将允许您始终保证新元素跟随链接。

node=document.getElementById('YourID');
node = document.getElementById('YourID');
node.insertAdjacentHTML('afterend', '<div>Sample Div</div>');
node.insertAdjacentHTML('afterend','Sample Div');
可用选项

前开始,后开始,前结束,后结束


document.getElementById('div')
将为空,您的意思可能是
document.getElementById('div')
这是不正确的。insertBefore不是一个全局函数,它是HtmleElement原型上的一个方法。正确的方法是
parentElement.insertBefore(newElement,childElement)
insertAfter
也不是一个实际的函数。它也有很好的浏览器支持。如果您不打算在旧IE上与表结合使用。这应该是当今公认的答案。完全支持浏览器,而且非常简短。这是最有用的答案。