我有两段,介于两者之间,我会调用一个函数。此函数用于在段落之间创建新的div。
<div id="container">
<p>lorem ipsum</p>
<script>createDiv()</script>
<p>lorem ipsum</p>
<p>lorem ipsum</p>
</div>
我见过append()
,但需要追加目标。我想每次调用函数时自动添加div。
此外,document.write()
但这将清除段落。
同一页面上有多个段落,我无法在这些段落中添加ID或类。我无法控制它们。
答案 0 :(得分:2)
我首先要说的是,你要做的事情非常难看。鉴于您的约束,您的应用程序结构很可能存在其他根本性的错误。我甚至觉得有点脏,给你这个解决方案。
无论如何,要根据您指定的代码示例和要求回答您的问题,您可能需要保留脚本注入标记的全局计数器,以便您可以附加到其先前的兄弟。这是一个应该做你想要的小提琴(http://jsfiddle.net/h5qttvx5/3/)的例子。
给定HTML
<div id="container">
<p>lorem ipsum</p>
<script>createDiv()</script>
<p>lorem ipsum</p>
<p>lorem ipsum</p>
<script>createDiv()</script>
</div>
和JS(头脑)
var scripts = 0;
function createDiv() {
$("#container > script").eq(scripts).prev().after("<div>HI</div>");
scripts++;
}
答案 1 :(得分:1)
试试这个:删除脚本调用并将id分配给第一段,然后使用.after()
追加div
<p id="firstP">lorem ipsum</p>
<p>lorem ipsum</p>
注意: - 您可以将class
属性用于第一个p
元素而不是id
,并按照$('.className')
使用.after()
$(function(){
$('#firstP').after('<div>Your div </div>');
});
答案 2 :(得分:0)
首先创建一个函数并为其命名createDiv:
<script>
function createDiv(div) {
document.write('<div>Testing</div>');
}
</script>
他们调用你想要放置新div的函数:
<p>lorem ipsum</p>
<script>createDiv()</script>
<p>lorem ipsum</p>
OBS:脚本必须位于HEAD中。
答案 3 :(得分:0)
如果你在p标签内附加:
$('p').append('<div>xyz</div>');
如果你在p标签之间追加为sibling:
$('<div>xyz</div>').insertAfter('p:first');
答案 4 :(得分:0)
将您的标记更改为
<p id="lorem">lorem ipsum</p>
<div id="thediv">
</div>
<p>lorem ipsum</p>
并致电$("#thediv").append("<div>append div</div>");
或强>
$('#lorem').after('<div>append div </div>');
答案 5 :(得分:0)
$("p:first").after("<div>Hello World</div>");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<p>lorem ipsum</p>
<p>lorem ipsum</p>
&#13;
答案 6 :(得分:0)
如果我能很好地理解你的问题,这段代码应该可以正常工作。
<p>lorem ipsum</p>
<script>document.write('<div>Testing</div>')</script>
<p>lorem ipsum</p>
答案 7 :(得分:0)
因为你有一个带有id的div容器,你可以将其作为目标,然后逐渐减少。请尝试以下方法:
$('#container > p:first').after('<div>hello</div>');
这将定位容器div中的第一个p标记,并在其后面添加一个div。
性能方面,您可能希望使用first()方法而不是伪类:first。
$('#container > p').first().after('<div>hello</div>');
此Stackoverflow问题的答案显示了两种情况的测试: jQuery :first vs. .first()