我有一个简单的字符串,例如。
var s = "<p>Hello World!</p><p>By Mars</p>";
我该如何将
s
转换为jQuery对象?我的目标是删除<p>
和</p>
。我可以使用正则表达式来完成这个任务,但这并不是一个推荐的方法。我有一个简单的字符串,例如。
var s = "<p>Hello World!</p><p>By Mars</p>";
s
转换为jQuery对象?我的目标是删除<p>
和</p>
。我可以使用正则表达式来完成这个任务,但这并不是一个推荐的方法。在最简单的形式下(如果我理解正确):
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解析的这里有很多帖子)。
$("P", o);"
不起作用。它与o.find('p')
相同,意思是查找所选元素的后代中的p
元素。但所选元素已经是p
元素。 - Felix Kling要获取所有的字符串,请使用以下方法
var s = "<p>Hello World!</p><p>By Mars</p>";
var result = "";
$.each($(s), function(i){
result += " " + $(this).html();
});
如果你不想使用正则表达式,为什么不直接这样做:
var s = "<p>Hello World!</p><p>By Mars</p>";
s = s.replace('<p>', '').replace('</p>', '');
.text()
已经满足了我的需求。 - moey