如何在React中的事件处理函数中访问DOM元素的属性和值?

时间:2018-05-22 04:15:47

标签: javascript reactjs javascript-events

我的渲染功能是

<input type="text" id="search" data-id={form.id} value={form.name} placeholder= "Search..." name="id" onKeyUp={this.keyUpFn}"/>

我的keyUpFn函数是

keyUpFn(e){
    var textInput = document.getElementById('search');
    value1 = textInput.getAttribute('data-id')
    value2 = e.getAttribute('data-id')
    console.log(value1 )
    console.log(value2 )
}

由于未定义getAttribute,因此两个控制台值都会出错。我怎样才能在React中解决这个问题?

3 个答案:

答案 0 :(得分:0)

您可以从事件target对象获取数据。这就是代码的外观

keyUpFn(e){
    console.log(e.target.getAttribute('data-id'));
    console.log(e.target.value);
}

答案 1 :(得分:0)

您实际上可以通过访问

来获取函数中事件(e)所请求的数据
event.currentTarget.dataset.paramater;

keyUpFn(e) {
  e.currentTarget.dataset.id
}

答案 2 :(得分:0)

您可以使用getElementsByClassName(或id,name等),querySelectorAll,focus。 前两个返回所有有效元素的数组。