我正在制作一个节点应用程序,需要从Web请求中识别特定元素。我能够从请求中下载原始字符串,但是当我尝试从解析的html中查找元素时,它返回'.whateverelement不是函数'。
var coolElements = [];
request('https://google.com', (error, response, htmlString) => {
if (!error && response.statusCode == 200) {
var html = $.parseHTML(htmlString);
html.find('.whateverelement').each(function(i) {
coolElements.append($(this).text());
});
}
});
来自jQuery文档:
jQuery.parseHTML()描述:将字符串解析为DOM节点数组。 https://api.jquery.com/jquery.parsehtml/
它返回一个数组,你试图根据查询选择器找到该数组中的元素:html.find('.whateverelement')
。它返回.whateverelement
不是函数,因为数组中的find
方法将函数作为参数。
你可能想要使用像var html = $(htmlString);
这样的东西,它应该返回一个带有解析HTML的jQuery元素,但是如果你想在服务器端运行jQuery(nodejs),我建议你看看https://github.com/cheeriojs/cheerio。
祝好运!