相当于getElementsByTagName的等价物

时间:2017-06-24 21:29:56

标签: javascript reactjs

我试图让这个var li = ul.getElementsByTagName('li');在React中工作但是它返回null,因为我猜dom还没有完全加载。所以我正在寻找这样做的反应方式,或者在dom加载之前不让它运行的方法

1 个答案:

答案 0 :(得分:1)

您需要在componentDidMount上运行代码。您还需要先获得ul

class MyComponent extends React.Component {
    componentDidMount() {
        let ul = document.getElementsByTagName('ul')[0];
        let li = ul.getElementsByTagName('li');
        console.log(li); // you should have an array with list items inside an specific unordered list
    }
    render() {
        return (
            <ul>
                <li>item1</li>
                <li>item2</li>
                <li>item3</li>
            </ul>
        )
    }
}

我建议您查看querySelectorquerySelectorAll,因为它们可能有用。