在JavaScript中,即使元素在DOM中,document.getElementById也不能为null

时间:2017-03-27 07:21:58

标签: reactjs

在React中,我使用的组件有<input type="text" id="location" />。当DOM加载组件时,在组件的componentDidMount()中,我将尝试搜索元素。

componentDidMount(){
    debugger;
    let ele = document.getElementById('location');
    console.log('ele', ele)
}

当它在debugger处断开时,我查看DOM(Chrome中的元素选项卡),上面的输入元素已经存在,但ele在控制台中仍然为空。

为什么呢?元素已经加载到DOM中,但我还是找不到它? 感谢

1 个答案:

答案 0 :(得分:1)

您的代码应该有效。但是你为什么使用jquery方法? ReactDom.findNode就是为了这个。您可以添加ref来访问该元素。

componentDidMount(){
    debugger;
   var Value = React.findDOMNode(this.refs.location).value;
    console.log('ele', ele)
}

<input type="text" ref="location" />