vue中,获取dom的children失败

在vue项目中,有以下代码:

<div ref="warePage">
        <sub-products-setting id="floor_0" v-if="pSubProductInfoVO.isShow" ref="subProductsRef"></sub-products-setting>
        <basic-info id="floor_1" v-if="pBasicInfoVO.isShow" ref="basicInfoRef"></basic-info>
        <sku-info id="floor_2" v-if="pSkuInfoListVO.isShow" ref="skuInfosRef"></sku-info>
        <product-imgs id="floor_3" v-if="pProductImgInfoVO.isShow" ref="productImgRef"></product-imgs>
        <delivery-info id="floor_4" v-if="pDeliveryInfoVO.isShow" ref="deliveryInfoRef"></delivery-info>
        <ware-house id="floor_5" v-if="pWarehouseInfoVO.isShow" ref="warehouseRef"></ware-house>
        <description-info id="floor_6" v-if="pDescriptionsInfoVO.isShow" ref="descriptionRef"></description-info>
        <account-info id="floor_7" v-if="pManAccountVO.isShow" ref="accountInfoRef"></account-info>
        <ordiary-info id="floor_8" v-if="pOrdinaryAttrInfoVO.isShow" ref="ordinaryInfoRef"></ordiary-info>
        <!--虚拟组套商品不显示该模块-->
        <business-relate id="floor_9" v-if="pBusinessRelateInfoVO.isShow && !isVirtualSuitWare" ref="businessInfoRef"></business-relate>      
</div>

然后再created中遍历:

 created() {
            // 监听鼠标滚动事件
            window.addEventListener("scroll", function () {
                console.log(typeof self.$refs.warePage.children)
                self.$refs.warePage.children.forEach((floor, index) => {
                    // if (winHeight + scrollHeight - $(floor).offset().top > winHeight / 2) {
                        console.log("activeIndex--->" + index)
                    // }
                })
            }, false)
        }
        
        然后滚动鼠标的时候,控制台报错:

clipboard.png
我看到控制台中打印出来是object类型

 console.log(typeof self.$refs.warePage.children)

但是:
控制台中打印self.$refs.warePage.children的结果是:

clipboard.png

请问是什么原因呢?我需要遍历ref为warePublishPage下的children怎么处理?

阅读 3.8k
2 个回答

试试

Array.prototype.forEach.call(self.$refs.warePage.children, (floor, index) => {
     // if (winHeight + scrollHeight - $(floor).offset().top > winHeight / 2) {
        console.log("activeIndex--->" + index)
    // }
})

打印出object有问题么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题