2016-02-12 26 views
0

我有這段代碼可以從HTML電子郵件中的鏈接標記中刪除所有空白。代碼運行良好,我得到的唯一問題是它似乎刪除頭標記內的內容,並刪除輸出上的開頭<body>並關閉</body>標記。有人能幫我理解發生了什麼事嗎?jquery刪除輸出上的頭部和身體標記

JSBin here

我的JavaScript代碼如下:

$('#submit').click(function(){ 

    var original = $('#replace').val(); 

    var output = $('<html/>').html(original); 
    output.find('a').each(function() { 
     var self = $(this); 
     var href = self.attr('href'); 
     if (href) { 
      self.attr('href', href.replace(/[\n\r]/g, '')); 
      self.attr('href', href.replace(/\s+/g, '')); 
     } 
    }); 

    $('#result').text(output.html()); 

}); 

如果我運行JSbin並輸入一些HTML,結果如下:

輸入

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
 
    <head> 
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" /> 
 
<meta name="format-detection" content="telephone=no" /> 
 
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
 
<meta name="viewport" content="width=device-width"> 
 
<meta name="robots" content="noindex" /> 
 
<title>TEST</title> 
 
<style type="text/css"> 
 
table td { 
 

 

 
</style> 
 
</head> 
 
<body yahoo="fix" style="-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; margin: 0; min-height: 1000px; padding: 0; width: 100%; background:#ffffff;" bgcolor="#FFFFFF"> 
 
<div>test</div> 
 

 
</body> 
 
</html>

輸出

 
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
 
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE"> 
 
<meta name="format-detection" content="telephone=no"> 
 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
<meta name="viewport" content="width=device-width"> 
 
<meta name="robots" content="noindex"> 
 
<title>TEST</title> 
 
<style type="text/css"> 
 
table td { 
 

 

 
</style> 
 
    
 
    
 
<div>test</div> 
 

 
    
 

正如你所看到的HTML標籤,head標籤和body標籤失蹤。雖然裏面的所有內容都停留。

+4

不清楚你問的是什麼或預期的輸出是什麼。請發佈所有相關代碼本身,並提供預期結果 – charlietfl

回答

-1

不知道這是你想要的,但它似乎是你的html選擇失敗。嘗試

var output = $(document.documentElement); 

在的地方:

var output = $('<html/>').html(original); 

現在YOUT選擇從對輸出文檔根的所有節點。 也許我理解錯了你的問題

+0

您可否解釋投票表決?如果這是合理的,我會刪除答案,但請解釋我爲什麼 –

相關問題