2011-01-10 78 views
3

我不确定这是否可以用Javascript完成,并且非常感谢任何帮助或建议。Javascript/jQuery:将内容分为两部分

这是一个场景:比方说,我有内容(所有文本),这是6段长。内容是一次从数据库动态提取的(这意味着所有的6段都通过一个变量输出,所以我没有办法改变它)。

我需要做的是,在页面顶部显示前两个段落,然后显示其他内容,然后在其他内容下方显示其余段落。

所以,内容= 6段

Paragraph One 
Paragraph Two 

SOME OTHER COOL STUFF IN BETWEEN 

Paragraph Three 
Paragraph ... 
Paragraph Six 

是否有可能拆分此内容的JavaScript。段落在p标签内输出。

+0

也许你应该张贴的“内容”的样本,所以我们知道什么是一个段落。 – MooGoo 2011-01-10 02:15:48

+0

如果您使用jQuery,请用`[jquery]`标记它。 – alex 2011-01-10 02:17:01

回答

2

HTML

<div id="wrapper"> 
    <p>Paragraph 1</p> 
    <p>Paragraph 2</p> 
    <p>Paragraph 3</p> 
    <p>Paragraph 4</p> 
    <p>Paragraph 5</p> 
    <p>Paragraph 6</p> 
    <div id="cool">SOME OTHER COOL STUFF IN BETWEEN</div> 
</div> 

jQuery的

$('#wrapper > p').slice(2).appendTo('#wrapper'); 

CSS

#cool { font-size:20px; color:red; } 

现场演示:http://jsfiddle.net/KZm5X/

2

如果它是一个很长的字符串,除非有一个分隔符,我没有看到分离的方法。如果它们已经在段落标记中,则可以在第二段使用:eq(1)选择器标记想要的内容之后使用类似于jQuery和.append的内容。

+0

是的,这是一个长的字符串被输出在个人的p标签...我会给.append一枪谢谢! – IntricatePixels 2011-01-10 02:13:34

+0

如果您需要帮助或示例只是评论回来和生病的代码。应该直截了当,jQuery网站有很多例子。祝你好运! :) – 2011-01-10 02:18:50

+1

感谢球员我得到这个工作:$('#wrapper> p')。slice(2)。appendTo( '#包装');从@Sime Vidas,但你所有的建议指出这个解决方案 – IntricatePixels 2011-01-10 02:34:58

2

如果每个段落被包裹在AP的标签,那么你可以做这样的事情(例如显著是用jQuery,但不会只JavaScript的坏)

内容:

<div id="wrapper"> 
    <p></p> 
    <p></p> 
    <p></p> 
    <p></p> 
    <p></p> 
    <p></p> 
</div> 

脚本:

<script> 
$('#wrapper:nth-child(2)').append("SOME OTHER COOL STUFF IN BETWEEN"); 
</script> 

为常规的JavaScript

<script> 
var p3 = document.getElementById('#wrapper').childNodes[2]; 
var text = document.createElement("p"); 
text.innerHTML = "SOME OTHER COOL STUFF IN BETWEEN"; 
p3.insertBefore(text,p3); 
</script> 
0

你没有说你正在使用一个库,所以这里是如何实现它没有一个库。

var p = document.getElementById('my-container').getElementsByTagName('p'), 
    newDiv = document.createElement('div'); 

p.parentNode.insertBefore(newDiv, p[2]);