javascript - href 使用 .attr()、.prop()、.each() 等返回未定义但能够返回值
问题描述
const results = $(".someclass")
.map((index, element) => {
const hrefValue = $(element).find("a").prop("href");
// or...
const hrefValue2 = $(element).find("a").attr("href");
return { hrefValue };
})
.get();
console.log(results);
控制台日志给了我我的期望。(财产的价值href
)。例如https://www.google.com
但是,如果我尝试使用任何字符串方法修改 href 值(根据类型,它是一个“字符串”),例如
const hrefValue = $(element).find("a").prop("href").toUpperCase();
我得到错误:TypeError: Cannot read property 'toUpperCase' of undefined
我研究的所有内容都指向 jquery 返回未定义,但我不认为这里的情况并非如此,因为我确实得到了返回的值。我只是无法使用字符串方法一路修改它,这是我不确定的部分,为什么。
编辑:它是 puppeteer,所以它正在抓取,但这里是 HTML 的要点:
<div className="someclass">
<a href="https://www.google.com>google</a>
</div>
我能够返回该值,并且type of
是“字符串”,但如果我尝试使用字符串方法对其进行修改,则会出现未定义的错误。
解决方案:感谢@epascarello 的解决方案。抓取的 puppeteer 数组中的第一个对象确实是空白的。这就是它给出未定义错误的原因。
一旦我在 .map() 前面放置了一个 `.slice(1),结果就会在控制台中正确显示,而不会出现未定义的错误。
解决方案
解决方案:感谢@epascarello 的解决方案。抓取的 puppeteer 数组中的第一个对象确实是空白的。这就是它给出未定义错误的原因。
一旦我在 .map() 前面放置了一个 `.slice(1),结果就会在控制台中正确显示,而不会出现未定义的错误。
推荐阅读
- animation - 偏移量滞后的动画
- android - 不希望 Deep Link 重定向到浏览器
- c# - 带有 JSON 和文件的 C# API Web 请求
- jquery - 如何获取输入的名称或ID?
- azure - Get-AzConsumptionBudget 显示不正确/不完整的数据
- flutter - Flutter GetX 状态变化时触发函数
- sql-server-2012 - SQL 服务器:映射网络驱动器 - 系统资源不足,无法完成请求的服务
- java - Helm 图表中的 Spring Boot 应用程序属性
- python - 解析 .csv 文件时超出列表范围
- javascript - react native:使用地图函数而不是硬编码的数据中填充 EmergencyRolePicker 选择器的方法是什么?