javascript - 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());
});
}
});
解决方案
来自 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 )。
祝你好运!
推荐阅读
- css - 如何在 CSS Grid 中添加列边框?
- r - 删除 R 中的特定重复元素
- google-bigquery - BigQuery 数据可以跨项目访问吗?
- ruby-on-rails - 避免在 has_many 端分配后调用 `reload_association`
- javascript - 如何在for循环javascript中使用onmousedown和网格
- python - Python Discord bot 在直接消息中响应,但不在频道中响应
- node.js - “查询”类型上不存在属性“哈希密码”
'.ts(2339) - video - 提取没有音频的视频ffmpeg
- mysql - 如何从 ubuntu 安装或转移现有的 moodle 项目到 Windows(Postgres 到 MariaDB sql)
- c++ - 使用标准布局类型与其他语言交流