2011-01-10 12 views
2

Hallo Ich habe den folgenden jQuery-Code, der einige Inhalte nach dem zweiten Absatz, fügt einige andere Inhalte dazwischen, dann zeigt den Rest des Inhalts am Ende.jquery fügen Sie Text und Anker Link zu Absatz

jQuery('#bookDescription > p').slice(2).appendTo('#bookDescription'); 

Ich muss einen Link mehr am Ende des zweiten Absatzes hinzufügen, der Link zu und Anker Link auf dem dritten Absatz wird. Normalerweise wäre dies mit html einfach einzurichten, aber nicht sicher, wie ich das mit jQuery erreichen kann.

So, jetzt ich so etwas wie dieses haben (erreicht durch jQuery oben:

Paragraph One 
Paragraph Two 
Other content 
Paragraph Three 
Paragraph .... 

Und ich möchte hinzufügen:

Paragraph One 
Paragraph Two ... Red More 
Other content 
<a name="linkFromReadMore"></a>Paragraph Three 
Paragraph .... 

Antwort

2

Sie so etwas tun könnte:

$('p:nth-child(2)').append($('<a>', { 
    'href': '#more', 
    'html': '&hellip;read more' 
})).after($('<p>', { 
    'html': 'other content' 
})).next().next().prepend($('<a>', { 
    'name': 'more' 
})); 

demo

+0

Das funktionierte dank einer Tonne! – IntricatePixels

0

Wenn Sie die p Elemente kennen, können Sie .after() verwenden http://api.jquery.com/after/ oder before(). So können Sie nach oder vor einfügen.Erstellen neuer Geschwister des gleichen Elternteils

0

Usin g named anchors ist ein bisschen Old-School in diesen Tagen. Sie können einen Link zu einem beliebigen Punkt auf der Seite erstellen, indem Sie seine ID verwenden.

Also, zu wissen, dass eine bessere Art und Weise alle, aber die ersten beiden Absätze greifen auch sein mag, wie du tust, und steckte sie in eine andere div:

var $more = $('<div></div>', { 
    id : 'linkFromReadMore' 
}); 

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

$('#bookDescription') 
    .append(/* whatever you want in-between */) 
    .append($more) 
;