Javascript:如何添加;分区;第二个“通用”后面的元素;p";每个帖子或内容部分内的标签(没有ID也没有类别)?

Javascript:如何添加;分区;第二个“通用”后面的元素;p";每个帖子或内容部分内的标签(没有ID也没有类别)?,javascript,html,dom,createelement,Javascript,Html,Dom,Createelement,如何使用JavaScript在每个页面的内容部分中插入一个自定义的“div”元素,该元素出现在第二个通用(不添加ID或类)“p”节点/标记)之后 例如: <div id="main-content"> <p>1st paragraph content.....</p> <p>2nd paragraph content.....</p> <p>3rd paragraph content.....</p>

如何使用JavaScript在每个页面的内容部分中插入一个自定义的“div”元素,该元素出现在第二个通用(不添加ID或类)“p”节点/标记)之后

例如:

<div id="main-content">
  <p>1st paragraph content.....</p>
  <p>2nd paragraph content.....</p>
  <p>3rd paragraph content.....</p>
</div>

第1段内容

第二段内容

第三段内容

输出:

<div id="main-content">
  <p>1st paragraph content.....</p>
  <p>2nd paragraph content.....</p>
  <div id="custom-div">Content here...</div>
  <p>3rd paragraph content.....</p>
</div>

第1段内容

第二段内容

内容在这里。。。 第三段内容

给定您的html:

<input type='button' onclick='addText();' value='Add To List'/>
<input type='text' id='input'/>
<div id="main-content">
  <p>1st paragraph content.....</p>
  <p>2nd paragraph content.....</p>
  <p>3rd paragraph content.....</p>
</div>
这是一张工作票

请注意,有一个全局
var
,因此您可以为动态创建的元素分配不同的ID

编辑

根据用户请求,以下代码将在加载时添加该内容:

<body onload="addText()">
<div id="main-content">
  <p>1st paragraph content.....</p>
  <p>2nd paragraph content.....</p>
  <p>3rd paragraph content.....</p>
</div>
</body>
这是新的


请注意,不再需要变量appender,我将离开这里,以防您想要合并功能。

我认为最简单的方法是这样

var node = document.createElement("div");
var textnode = document.createTextNode('Content here...');
node.appendChild(textnode);
node.id = 'custom-div';
var referencenode = document.getElementById('main-content').children[1];
referencenode.parentNode.insertBefore(node, referencenode.nextSibling);
代码“referencenode.parentNode.insertBefore(node,referencenode.nextSibling);”将在所选元素之后插入节点


这是带有第n个子项的
querySelectorAll
,然后在下一个同级项之前抓取元素并插入
。这非常有效,但我希望在页面加载后自动调用该函数。如何调整代码?谢谢没问题:请参阅更新后的代码,它会在加载的时候插入行,如果你发现这个答案有用,请考虑支持和接受,以便它对其他用户有用。谢谢你,伙计!现在投票表决。最后一个问题是。。。有了“textnode”变量,我可以在它里面写html标记吗?还是只写纯文本?没问题!我很高兴它有用!,在
createTextNode
方法中使用纯文本,如果要创建元素,请使用
createElement
,然后将文本附加到已创建的元素,就像我们使用divHmmm所做的那样。。。这对我来说似乎很难。我不确定这是不是我想要的。我试图完成的是插入一个div标记,该标记能够在其中编写html,并且可以包含很少的元素。下面是我想要在div标签中包含的内容:可以用它来完成吗?
var appender=1;
function addText(){
    var parentDiv = document.getElementById('main-content');      
    var node = document.createElement("DIV");
    var textnode = document.createTextNode("This was added dinamically");
    node.appendChild(textnode);     
    node.id = 'custom-div_' + appender;
    var child = parentDiv.children[2];
    parentDiv.insertBefore(node, child);
    appender++;

}
var node = document.createElement("div");
var textnode = document.createTextNode('Content here...');
node.appendChild(textnode);
node.id = 'custom-div';
var referencenode = document.getElementById('main-content').children[1];
referencenode.parentNode.insertBefore(node, referencenode.nextSibling);