簡體   English   中英

從javascript輸出中刪除HTML標記

[英]Remove HTML tags from javascript output

我環顧了stackoverflow,但是找不到解決我問題的答案。 希望我能解釋一下,以便大家都知道我要做什么...(如果需要更多信息,請告訴我)。

我有一段PHP腳本,可以從會話數組中添加和刪除內容。 現在,這是此腳本的代碼:

<?php foreach ($_SESSION['products'] as $product): ?>
    <p style="font-size:1.2rem"><?php echo htmlspecialchars($product); ?></p>
<?php endforeach;?>

我使用Javascript將其回顯到返回值的textarea

Java腳本

$('.my-subject').click(function(){
    var title = $(this).attr('value');
      $("textarea#thema").html(data); 
})

現在,它返回帶有HTML標簽<p> ... </p> 如何獲取沒有HTML標記且結尾處有換行符的返回值? 我嘗試使用:

$("textarea#thema").text() + '\n';

但這沒有用,這仍然顯示<p> -tags並且沒有換行符。

我還看到了一些這樣的代碼:

function removeTags(){
    var txt = document.getElementById('myString').value;
    var rex = /(<([^>]+)>)/ig;
    alert(txt.replace(rex , ""));
}

但是我不知道我是否可以在我的代碼中使用它以及如何做到這一點...任何幫助將不勝感激。 謝謝。

聽起來data好像是一個包含標記的字符串,其形式為<p style="font-size:1.2rem">STUFF HERE</p> ,重復進行,而您只想獲得STUFF HERE部分。

可靠的方法是解析HTML並從中提取文本:

 // The data var data = '<p style="font-size:1.2rem">First</p>' + '<p style="font-size:1.2rem">Second</p>' + '<p style="font-size:1.2rem">Third</p>'; // Parse it var elements = $.parseHTML(data); // Convert that to an array of the text of the entries var entries = elements.map(function(element) { return $(element).text(); }); // Get a string of the array entries joined with "\\n" var value = entries.join("\\n"); // Done! $("#output").val(value); 
 <textarea id="output" rows="4"></textarea> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

可以更簡潔地寫出來,但是為了清楚起見,我將各部分分開。

暫無
暫無

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

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