无法检索来自html的输入

时间:2018-12-17 13:49:13

标签: javascript reactjs

HTML包含:

<span class="AIvhS _3MboC _2YsGM _22FXo ywmsL" data-reactid=".n.6.1:0.1:3">
    <span class="_3hurI" data-reactid=".n.6.1:0.1:3.0">
        <input class="_2ixY2 _1qXYA" value="" data-reactid=".n.6.1:0.1:3.0.1" autocomplete="off">
    </span><span class="_1Q8WE" data-reactid=".n.6.1:0.1:3.2">*</span>
</span>

我想设置input值。我首先要做的是通过以下方式检索input对象:

document.getElementsByClassName("_2ixY2 _1qXYA");

不幸的是,由于某种原因,此响应返回undefinded。为什么会发生这种情况?

3 个答案:

答案 0 :(得分:2)

.getElementsByClassName("")返回具有该类名称的元素数组。使用document.getElementsByClassName("_2ixY2 _1qXYA")[0]获取第一个,并使用.value设置其值

答案 1 :(得分:1)

尝试

document.querySelector('input[class="_2ixY2 _1qXYA"]');

但是我想指出的是,不建议在react中直接查询DOM,因为这会导致React的Virtual DOM出现问题

答案 2 :(得分:0)

getElementsByClassName返回包含givven类的所有元素的数组,因此您可以像这样运行代码

var input_element = document.getElementsByClassName("_2ixY2 _1qXYA")[0];
input_element.value = 'hiii';

这是工作中的snnipet