2016-09-16 121 views
0

我使用cheerio和我有一些HTML這樣的:刪除空p標籤和轉換等p標籤到 n

<p></p> 
<p>test</p> 
<p>&nbsp;</p> 
<p>test</p> 
<p>&nbsp;</p> 
<p>test</p> 

我想知道我怎麼可以使用這個HTML格式來這樣的事情javascript和cheerio。

test\ntest\ntest 

這樣,如果其空p標籤應當否則就刪除它更改爲\ n

+0

這是HTML中的客戶方或服務器上的字符串的DOM? 'node.js'標籤在這裏拋棄我。 –

+0

@MaartenBicknese查找Cheerio ... – epascarello

回答

2
  1. 選擇段落
  2. 篩選出空的
  3. 地圖文本
  4. 將它變成數組
  5. 加入數組以映射字符串

var txt = $('p') //1 
      .filter(function(i, el) { //2 
       return $(this).text().replace(/\s+|&nbsp;/g,"").length; 
      }).map(function() { //3 
       return $(this).text(); 
      }) 
      .get() //4 
      .join("\n"); //5 
+0

無法讀取未定義的屬性'替換' –

+0

將'this.textContent'更改爲'$(this).text()'大腦在jQuery w/dom中工作 – epascarello

0

如果在html你的HTML,這樣的事情應該工作:

var $ = cheerio.load(html); 
var result = ''; 
$('body').each(function() { 
    if ($(this).find('p').contents().length) { 
    result += $(this).text() + '\n'; 
    } 
});