为输入字段分配值以动态更改其ID

时间:2019-08-28 13:54:59

标签: javascript

我想为输入字段分配一个值,该字段会动态更改其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";

是否有任何方法可以为此字段分配值?

1 个答案:

答案 0 :(得分:1)

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

简而言之,无论何时使用javascript element.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="">