2011-01-10 95 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]);