簡體   English   中英

jQuery從字符串中刪除某些標簽

[英]jQuery remove certain tags from a string

我有一個要刪除所有圖形標簽的字符串。 我嘗試了以下方法:

var s = '<html><body>report content<figure id="fig2" data-contenttype="chart"><img src="chart.jpg"/><div>chart 1</div></figure><div>body content</div><figure id="fig2"><img src="chart2.jpg"/><div>chart 2</div></figure></body></html>';
var result = $(s).find('figure').remove();

這樣做不起作用的原因是find找不到圖形元素,因為它們有孩子。 有誰知道我如何刪除所有的數字節點(以及其中的所有內容),並保持其余的html完好無損?

注意html不在DOM中,我需要通過字符串操作來做到這一點。 我不想碰DOM。

您可以將string包裝在jQuery對象中,並進行如下操作:

var removeElements = function(text, selector) {
    var wrapped = $("<div>" + text + "</div>");
    wrapped.find(selector).remove();
    return wrapped.html();
}

用法

var removedString = removeElements('<html><body>report content<figure id="fig2" data-contenttype="chart"><img src="chart.jpg"/><div>chart 1</div></figure><div>body content</div><figure id="fig2"><img src="chart2.jpg"/><div>chart 2</div></figure></body></html>','figure');

這種方法的優點在於,您可以指定要刪除的jquery選擇器。

保留html和body標簽的另一種方法:

var s = '<html><body>report content<figure id="fig2" data-contenttype="chart"><img src="chart.jpg"/><div>chart 1</div></figure><div>body content</div><figure id="fig2"><img src="chart2.jpg"/><div>chart 2</div></figure></body></html>';
var $s = s.replace(/<figure>(.*)<\/figure>/g, "");
console.log($s)

暫無
暫無

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

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