2017-04-26 35 views
5

我有以下HTML代碼。我想查找並替換沒有HTML標籤的文本,並使用jQuery將其包裝在p元素中。有沒有辦法達到我的目標?如何在沒有html標籤的情況下查找文本並用一個頁面對其進行包裝

<div class="col span_12_of_12 firstDiv"> 
    <h2>My tasks</h2> 
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr 
    <ul> 
    <li>Lorem ipsum dolor sit</li> 
    <li>Lorem ipsum dolor sit</li> 
    <li>Lorem ipsum dolor sit</li> 
    <li>Lorem ipsum dolor sit</li> 
    </ul> 
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr 
</div> 
+2

應該是什麼輸出標記? – gurvinder372

+0

找到?並取代? – prasanth

+3

我覺得OP是指2'Lorem ipsum dolor坐amet,consetetur sadipscing elitr',這是沒有封裝 –

回答

7

要達到此目的,您需要找到子文本節點並將它們包裝在<p>標記中。要做到這一點,您可以使用contents()filter()然後wrap(),像這樣:

$('.col').contents().filter(function() { 
 
    return this.nodeType == 3 && this.textContent.trim(); 
 
}).wrap('<p />');
p { border: 1px solid #C00; } /* only used to make the output obvious */
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="col span_12_of_12 firstDiv"> 
 
    <h2>My tasks</h2> 
 
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr 
 
    <ul> 
 
    <li>Lorem ipsum dolor sit</li> 
 
    <li>Lorem ipsum dolor sit</li> 
 
    <li>Lorem ipsum dolor sit</li> 
 
    <li>Lorem ipsum dolor sit</li> 
 
    </ul> 
 
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr 
 
</div>

+0

那麼優雅,做得好 –

+0

您好Rory 非常感謝您的回覆。有用! – Daniel

相關問題