我正在構建網站的平臺在wysiwyg模式下生成空p
標籤。我怎樣才能把這些拿出來?如何用jQuery刪除空p標籤?
這樣的事情,也許......
$("<p> </p>").remove();
雖然上面的代碼什麼也不做。
我正在構建網站的平臺在wysiwyg模式下生成空p
標籤。我怎樣才能把這些拿出來?如何用jQuery刪除空p標籤?
這樣的事情,也許......
$("<p> </p>").remove();
雖然上面的代碼什麼也不做。
答案取決於什麼「空「的意思。如果空段落是<p></p>
那麼fireeyedboy的p:empty
選擇器是要走的路。如果有可能是空格或換行符號或其他類似的東西,那麼你可能想是這樣的:
$('p').each(function() {
var $this = $(this);
if($this.html().replace(/\s| /g, '').length == 0)
$this.remove();
});
例子:http://jsfiddle.net/ambiguous/7L4WZ/
FCKEditor的(不知道的CKEditor或TinyMCE的)喜歡添加<p> </p>
到HTML,所以你可能需要上述有點醜陋的方法。
嘗試:
$('p:empty').remove();
最好和簡單 – 2017-03-29 07:34:37
我對聚會有點遲到,但最近我發現這個帖子,因爲我正在尋求解決這個問題。
我想出了一個香草JS這裏的解決方案,它爲我工作:
var p = document.querySelectorAll('p:empty');
for(var i = p.length - 1; i > -1; i--) {
p[i].parentNode.removeChild(p[i]);
}
,它基本上是(精確地)提出什麼fireeyedboy,但沒有jQuery的。
這似乎也比jQuery的有更好的表現,以及: http://jsperf.com/remove-empty-elements-javascript-vs-jquery
希望這有助於!
querySelectorAll存在舊版瀏覽器不支持的問題 – 2013-12-30 19:41:58
好點。我猜在這種情況下,如果你選擇了帶有querySelector的香草路線,你可以使用一個Polyfill來添加舊的瀏覽器支持。 – ItsJonQ 2014-01-03 06:13:30
感謝「畝產過短」,
我已經試過你的代碼,它的工作原理,但我需要將其包裝在jQuery(document).ready(function() {});
完整的代碼爲我工作是:
jQuery(document).ready(function() {
jQuery('p').each(function() {
var $this = jQuery(this);
if($this.html().replace(/\s| /g, '').length == 0) {
$this.remove();
}
});
});
我不知道爲什麼會發生這種情況,我的jQuery/JS不太好,我正在學習它)。
希望這能幫助像我這樣的人。
謝謝。
/* Remove empty paragraphs with */
jQuery('p').each(function(){
if(jQuery(this).html() == ' ')
jQuery(this).remove();
})
這一個工作。謝謝。 – Steve 2011-05-23 04:42:44
非常感謝你! – DextrousDave 2013-03-19 05:52:10