给this.children[i]宽度赋值遇到问题

来源:4-4 轮播图组件实现(上)

OceanFloor

2019-09-25

老师您好,我在给给this.children[i]宽度赋值的时候遇到一些问题。
您的方法是

for (let i = 0; i < this.children.length; i++){
	// console.log(this.children[i])
	this.children[i].style.width = sliderWidth + "px"
}

而我自己在实现的时候用的方法是

for (let key in this.children) {
	// console.log(this.children[key])
	this.children[key].style.width = sliderWidth + "px";
}

但是我的方法后台却提示slider.vue?eaef:59 Uncaught TypeError: Cannot set property 'width' of undefined,而用您的方法却没有问题,然而我后台分别将他们打印console.log(this.children[i])console.log(this.children[key]),却发现他们是同样的东西?为什么我的方法就错了呢?

还有另外一个问题,如果我不做子元素宽度赋值,我直接css控制width: 100%这样可以吗?谢谢

写回答

1回答

ustbhuangyi

2019-09-26

第一个建议加个 debugger 做断点调试,有些时候 console.log 是不靠谱的,特别是 log 引用类型的时候。
css 控制貌似不行,做宽度设置的目的是为了让子容器的宽度超过父容器的宽度,这样就能横向滚动。

0
0

Vue2.0高级应用教学实战,开发企业级移动端音乐Web App

Vue.js高级知识应用大集合,实战企业级APP,教你搞定组件化开发。

5432 学习 · 3805 问题

查看课程