簡體   English   中英

在Jquery中,如何將段落文本的一部分包含在span中

[英]In Jquery, how do I wrap part of paragraph text inside span

如何在span中的段落中包含span之后找到的innerhtml。 通過示例更好地解釋:

<p>foo <span>bar</span> baz</p>

我想得到:

<p>foo <span>bar</span><span> baz</span></p>

baz也可以標記(即可以包含鏈接等)。

我試過了

$(p span).first().contents().filter(function() {
    return this.nodeType == 3;
}).text();

但只給了我第一個跨度的內跨文本......

DEMO

var span = $('p > span:first')[0];
var target = [];
while(span.nextSibling) {
    target.push(span.nextSibling);
    span = span.nextSibling;
}
$(target).wrapAll('<span />');

這可能會奏效

$('<span>').insertAfter('span')
$('</span>').appendTo('p')

您當然希望更具體地針對您的目標。

感謝你的幫助@Sahil Muthoo,@ Saul和@puppybeard,不幸的是我無法得到你建議的答案,所以最后我想出了這個,雖然看起來有點過頭了,但對我的情況有用。

在jsFiddle上觀看現場演示

var p = $('p').clone();
p.children('span').first().replaceWith('[split]');
var aParts = p.html().split('[split]');
var newP = $('<p>').text(aParts[0]).append($('p').children('span').first());
if (aParts.length > 1) {
    newP.append($('<span>').html(aParts[1]));
}       
$('p').replaceWith(newP);

清理上述混亂的建議將受到關注。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM