首页 > 解决方案 > 将值分配给动态更改其 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";

有什么方法可以给这个字段赋值吗?

标签: javascript

解决方案


HTML 元素在属性属性之间有区别。

简而言之,每当您在 javascriptelement.xyz中进行操作时,您都在访问名为的属性xyz,而不是属性。

但是,当您检查 HTML<>标记时,您正在查看属性。所以你的代码正确地设置了value属性,但是你不会看到<input... value="bf5a4">你没有设置value属性。

如果您确实想设置属性,则必须显式调用setAttributemdn),例如:

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="">


推荐阅读