试图从get()请求返回的html中选择一个’body’标签

我正在进行ajax get调用 ,返回html页面的内容。 我正在尝试选择body标签的内容,但我的选择器返回一个空的jquery对象。

 $.get(filename, function(data) { console.log($("body", data)); }) 

其中data是html文件的内容。

jQuery无法选择响应字符串的 ,因为当使用$()转换字符串时, 标记会消失。

因此,您必须以其他方式从data字符串中选择正文,例如正则表达式。 例:

 $.get(filename, function(data) { var body = data.replace(/^[\S\s]*]*?>/i, "") .replace(/<\/body[\S\s]*$/i, ""); //Optionally, convert the string to a jQuery object: body = $(body); console.log(body); })) 

注意:我的正则表达式假设一个格式良好的HTML文档,其中>使用HTML实体正确显示。 如果不是这种情况,则必须使用更高级的RegExps,例如此问题中显示的那些。

jQuery使用文档对象模型,而不是构成该模型的“文本”。 您在数据元素中只有一大段文本尚未添加到文档中。

 $(body).html(data); 

…假设数据包含有效的正文代码。 它是一个完整的HTML页面,然后你需要解析它只是身体内容,例如使用indexOf或某些。