react中判断某元素内是否含有子元素,有则将所有子元素移除,无则添加一个类名为append_class的div元素
2023-12-14 04:59:07
接上一篇内容继续实现功能:含有子元素则移除,不含有则添加一个类名为append_class的div元素。
类组件实现代码
import React, { Component, createRef } from 'react'
export default class App extends Component {
constructor(props){
super(props)
this.divRef = createRef()
}
componentDidMount(){
const element = this.divRef.current
if (element) {
if (element.hasChildNodes()) {
console.log('该元素含有子元素');
const childNodes = element.childNodes
for (let i = childNodes.length - 1; i >= 0; i--) {
element.removeChild(childNodes[i])
}
}else{
console.log('该元素不含子元素');
const appendChildEl = document.createElement('div')
appendChildEl.className = "append_class"
appendChildEl.innerText = "类组件新加入的元素"
element.appendChild(appendChildEl)
}
}
}
render() {
return (
<div>
<div ref={this.divRef}>
<button>子元素</button>
</div>
</div>
)
}
}
函数组件实现代码
import React, {useRef, useEffect} from 'react'
export default function App() {
const divRef = useRef(null)
useEffect(() => {
const element = divRef.current
if (element) {
if (element.hasChildNodes()) {
console.log('该元素含有子元素')
const childNodes = element.childNodes
for (let i = childNodes.length - 1; i >= 0; i--) {
element.removeChild(childNodes[i])
}
} else {
console.log('该元素不含子元素')
const appendChildEl = document.createElement('div')
appendChildEl.className = "append_class"
appendChildEl.innerText = "函数组件新加入的元素"
element.appendChild(appendChildEl)
}
}
})
return (
<div>
<div ref={divRef}>
<button>检查子元素</button>
</div>
</div>
)
}
文章来源:https://blog.csdn.net/qq_45290368/article/details/134981228
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!