Javascript:如何添加;分区;第二个“通用”后面的元素;p";每个帖子或内容部分内的标签(没有ID也没有类别)?
如何使用JavaScript在每个页面的内容部分中插入一个自定义的“div”元素,该元素出现在第二个通用(不添加ID或类)“p”节点/标记)之后 例如: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>
<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);