使用jQuery的append()方法动态插入结构,定时循环请求接口的时候不仅数据更新,dom结构也会重复添加?

在使用setInterval定时器请求接口并动态添加HTML结构时,每次请求都会在.center-main类元素中新增一个div。为避免累积,解决方案是在添加前使用empty()方法清除已有内容。代码示例中展示了如何在添加新数据前检查并清理现有内容。
摘要由CSDN通过智能技术生成

  问题: 在使用setInterval循环定时器请求接口的时候,使用$('.center-main').append(`<div>111</div>`)动态添加结构,会导致每请求一次接口,$('.center-main')里多累计添加一个div元素。

  解决方法:就是在每次请求完接口之后,添加元素之前,先判断一下$('.center-main')是否有div这个结构,有就先清除再append添加。empty() 方法是移除被选元素的所有子节点和内容,不会移除被选元素本身。

   //先判断一下被选元素的长度是否为0,不等于0就说明里面有子节点,需要先移除
   if ($('.center-main').length != 0) {
           $('.center-main').empty()
         }

  //data是请求接口得到的数组,先循环再添加
   data.map((item, index) => {
       item.FloorList.map(t => {
           $('.center-main').append(`
                 <div  style='margin-top:10px;'>
                       <span>${item.BuildName}</span>
                       <span>${t.FloorName}</span>
                 </div>`)
           })
        })

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值