首页 > 解决方案 > JQuery:无法识别已解析 HTML 中的元素

问题描述

我正在制作一个需要从 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());
        });
    }
});

标签: javascriptjquerynode.js

解决方案


来自 jQuery 文档:

jQuery.parseHTML() 描述:将字符串解析为 DOM 节点数组。 https://api.jquery.com/jquery.parsehtml/

它返回一个数组,您试图根据查询选择器在该数组中查找元素:html.find('.whateverelement')。它返回.whateverelement的不是函数,因为find数组中的方法将函数作为参数。

您可能想要使用类似的东西var html = $(htmlString);,它应该返回一个带有解析 HTML 的 jQuery 元素,但是我建议您查看https://github.com/cheeriojs/cheerio如果您想在服务器端运行 jQuery(nodejs )。

祝你好运!


推荐阅读