给可任意选择一级的el-cascader赋值时子节点radio不默认选中的解决方式

针对el-cascader组件在Vue项目中子节点未默认选中的状况,通过在mounted生命周期钩子中使用$nextTick确保DOM渲染完成,然后找到所有选中节点,获取最后一个子节点的radio元素并添加is-checked类,以实现子节点的选中状态显示。
摘要由CSDN通过智能技术生成

问题呈现:
在这里插入图片描述
解决后:
在这里插入图片描述
代码:

      // 解决el-cascader子节点不默认选中问题
      this.$nextTick(() => {
        // 获取所有选中的节点
        let checkedLeaves = document.getElementsByClassName('in-checked-path')
        // 获取子节点
        let checkedLeaf = checkedLeaves[checkedLeaves.length - 1]
        // console.log('leaf', checkedLeaf)
        // 获取子节点中的radio元素
        let radio = checkedLeaf.childNodes[0].childNodes[0]
        radio.classList.add('is-checked')
      })

注:将该代码放在mounted中,由于此时元素不一定渲染完全,若有接口请求等异步操作,需要用async/await关键字,以此确保能获取到元素。
.in-checked-path在elementui中表示该节点路径被选中(即图中样式不同部分),需要给radio加上.is-checked使其变成被选中的节点

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渡城WEDU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值