html - 从网页中的输入标签中提取元素信息
问题描述
我有一个 Excel 宏成功写入网站,.getElementByID("TBPRODDESC#####").value
其中 ##### 是输入框的唯一 ID,但是在某些情况下<input>
禁用/库存值为零或低于输入的数字。虽然宏继续没有错误,但确定何时发生这种情况将很有用。
在<input>
输入框中有标签“InStock”但是由于在许多不同的输入 ID 中有这个标签的多个实例,我不确定如何为特定的输入 ID 提取这些信息
<input>
下面是我正在使用的两个示例
(1)
<INPUT disabled id=TBPRODDESC11111 value=0 name=TBPRODDESC11111 InStock="0">"
- 希望确定 TBPRODDESC11111 已禁用或 TBPRODDESC11111 / "InStock" = 0
(2)
<INPUT id=TBPRODDESC33333 value=0 name=TBPRODDESC33333 InStock="5">
- 寻找确定 TBPRODDESC33333 / "InStock" = 5
页面上大约有 100 个 Input 元素,每个元素都有一个唯一的 Input ID。
我可以使用 IE.Document.getElementById("TBPRODDESC11111").Value = Cells(3, "C").Value 写入输入
但使用 Stkflag = IE.Document.getElementByTagID("InStock").Value 总是给 0 因为我不确定如何指定我需要的 ID InStock 标签
任何帮助了解如何实现此检查将不胜感激。
解决方案
如果我理解正确,您可以使用 querySelector。
let elInputs = document.querySelector('[id^="TBPRODDESC"]');
然后你可以在该元素数组上执行你的业务逻辑。例如,您可以像这样过滤所有禁用的元素:
let elDisabled = [];
for(let i=0; i<elInputs.length; i++) {
if(elInputs[0].disabled == true)
elDisabled.push(elInputs[0]);
}
对于 InStock 属性:
let elValidInStock= [];
for(let i=0; i<elInputs.length; i++) {
if(elInputs[0].hasAttribute("InStock") && elInputs[0].getAttribute("InStock") > 0 )
elValidInStock.push(elInputs[0]);
}
推荐阅读
- go - 如何在一个字段中创建具有 nil 值的地图,然后将其编组为 json?
- google-api - 尝试 Google API 存储桶:特定服务帐户的 testIamPermissions
- python - 使用 Python 从 SFTP 服务器下载超过 5 天的文件
- javascript - 当 x 轴隐藏在 Slider 中时,y 轴溢出
- javascript - 有没有办法打印 PDF 但手动设置值而不是从主 HTML 中获取它们?
- java - 执行准备语句时出现 java.sql.SQLSyntaxErrorException
- api - 消费者只在开始时两次消费相同的消息
- javascript - 如何使用 JSF Richfaces 文件上传在客户端获取文件大小
- javascript - 本地 Azure Devops 中的授权错误 401
- amazon-web-services - 无法加载文件或程序集“AWS.Logger.Core”