使用jQuery从字符串中删除HTML标记

时间:2012-01-01 08:38:38

标签: javascript jquery html

我有一个简单的字符串,例如

var s = "<p>Hello World!</p><p>By Mars</p>";

如何将s转换为jQuery对象?我的目标是删除<p></p>。我本可以使用正则表达式完成此操作,但这更像是not recommended

3 个答案:

答案 0 :(得分:9)

以最简单的形式(如果我理解正确的话):

var s = "<p>Hello World!</p><p>By Mars</p>";
var o = $(s);
var text = o.text();

或者您可以使用带搜索上下文的条件选择器:

// load string as object, wrapped in an outer container to use for search context
var o = $("<div><p>Hello World!</p><p>By Mars</p></div>");

// sets the context to only look within o; otherwise, this will return all P tags
var tags = $("P", o); 

tags.each(function(){
    var tag = $(this); // get a jQuery object for the tag
    // do something with the contents of the tag
});

如果要解析大量的HTML(例如,解释屏幕刮擦的结果),请使用服务器端的HTML解析库,而不是jQuery(这里有很多关于HTML解析的帖子)。

答案 1 :(得分:1)

要获取所有字符串,请使用

var s = "<p>Hello World!</p><p>By Mars</p>";
var result = "";
$.each($(s), function(i){
    result += " " + $(this).html();
});

答案 2 :(得分:0)

如果你不想要正则表达式,为什么不呢:

var s = "<p>Hello World!</p><p>By Mars</p>";
s = s.replace('<p>', '').replace('</p>', '');