javascript - 将值分配给动态更改其 id 的输入字段
问题描述
我想为动态更改其 ID 的输入字段分配一个值。该字段如下所示。
<input aria-autocomplete="list" aria-labelledby="downshift-5-label" autocomplete="off" id="downshift-5-input" placeholder="Enter agent name" class="css-1u5bp1w etr7mik2" value="">
我的要求是为此字段分配一个值。我试过下面的方法。它显示该值出现在 UI 中,但它没有分配给上面的 value="" 字段。
document.querySelector('*[placeholder="Enter agent name"]').value = "bf5a4";
有什么方法可以给这个字段赋值吗?
解决方案
HTML 元素在属性和属性之间有区别。
简而言之,每当您在 javascriptelement.xyz
中进行操作时,您都在访问名为的属性xyz
,而不是属性。
但是,当您检查 HTML<>
标记时,您正在查看属性。所以你的代码正确地设置了value
属性,但是你不会看到<input... value="bf5a4">
你没有设置value
属性。
如果您确实想设置属性,则必须显式调用setAttribute
(mdn),例如:
let el = document.querySelector('*[placeholder="Enter agent name"]');
el.value = 'bf5a4-property'; // sets property
el.setAttribute('value', 'bf5a4-attribute'); // sets attribute (// <input... value="bf5a4-attribute">)
<input aria-autocomplete="list" aria-labelledby="downshift-5-label"
autocomplete="off" id="downshift-5-input" placeholder="Enter agent name"
class="css-1u5bp1w etr7mik2" value="">
推荐阅读
- angular - Angular SPA 的导航图
- javascript - 在 catch axios 中未定义 error.response
- postgresql - 在 PostgreSQL 日志中获取“不完整的启动数据包”
- python - CTRL S 使用 selenium python 保存 chrome 页面内容不起作用
- sas - 在 sas 中使用 proq sql 进行数据操作
- php - Laravel 管理员 - Voyager 路由重定向
- node.js - 使用 azure 管道部署 create-react-app
- asp.net-mvc - 如何以最佳方式执行登录识别过程?
- c# - 如何从以客户端服务器为中心的不同命名空间填充 ListView
- sql - 如何在分组集中获取与最小值和最大值对应的项目的名称到不同的列中