Javascript 在数组中循环并获取上一个值时第一个项的特殊情况?
我目前正在这样做,存储每个项目的高度,以便以后通过Javascript 在数组中循环并获取上一个值时第一个项的特殊情况?,javascript,ecmascript-6,Javascript,Ecmascript 6,我目前正在这样做,存储每个项目的高度,以便以后通过css访问它: children[0].style.setProperty('--previousHeight', 0+'px'); children.forEach((child, i) => { if(i > 0 ){ var height = children[i-1].offsetHeight; child.style.setProperty('--previousHeight', he
css
访问它:
children[0].style.setProperty('--previousHeight', 0+'px');
children.forEach((child, i) => {
if(i > 0 ){
var height = children[i-1].offsetHeight;
child.style.setProperty('--previousHeight', height+'px');
}
})
我想把第一件事和另一件事更像一次。差不多
height = offsetHeight || 0;
但我不确定如何以一种易于阅读的方式做到这一点应该是:
children.forEach((child,i)=>{
变量高度=儿童[i-1]&&children[i-1]。离视| | 0;
setProperty('--previousHeight',height+'px');
})
如果您不熟悉:
var height = children[i-1] && children[i-1].offsetHeight || 0;
结果如下:
var height = children[i-1] ? children[i-1].offsetHeight : 0;
应该是:
children.forEach((child,i)=>{
变量高度=儿童[i-1]&&children[i-1]。离视| | 0;
setProperty('--previousHeight',height+'px');
})
如果您不熟悉:
var height = children[i-1] && children[i-1].offsetHeight || 0;
结果如下:
var height = children[i-1] ? children[i-1].offsetHeight : 0;
这应该是最快最干净的方法
<div id='myElement'>
<div></div>
<div></div>
<div></div>
<div></div>
</diV>
<script>
var children = document.getElementById('myElement').children;
var h = children[0].offsetHeight;
for(var i in children){
if( i > 0 ){
children[i].style['height'] = h;
children[i].style.setProperty('--previousHeight', h);
}
}
</script>
var children=document.getElementById('myElement').children;
var h=子项[0]。视线外;
for(儿童中的变量i){
如果(i>0){
儿童[i].style['height']=h;
children[i].style.setProperty('--previousHeight',h);
}
}
这应该是最快捷、最干净的方法
<div id='myElement'>
<div></div>
<div></div>
<div></div>
<div></div>
</diV>
<script>
var children = document.getElementById('myElement').children;
var h = children[0].offsetHeight;
for(var i in children){
if( i > 0 ){
children[i].style['height'] = h;
children[i].style.setProperty('--previousHeight', h);
}
}
</script>
var children=document.getElementById('myElement').children;
var h=子项[0]。视线外;
for(儿童中的变量i){
如果(i>0){
儿童[i].style['height']=h;
children[i].style.setProperty('--previousHeight',h);
}
}
这就是我最后要做的:
children.forEach((child, i) => {
var height = 0
if(i > 0 ){
var height = children[i-1].offsetHeight;
}
child.style.setProperty('--previousHeight', height+'px');
})
这就是我最后做的:
children.forEach((child, i) => {
var height = 0
if(i > 0 ){
var height = children[i-1].offsetHeight;
}
child.style.setProperty('--previousHeight', height+'px');
})
因为我希望值是上一个子级的值,对于I=0没有值。
if(I>0){…}else{…}
所以你想在索引0的第一个子级上设置--previousHeight,值为0px?因为我希望值是上一个子级的值,对于I=0没有值。if(I>0){…}else{…}
那么您想在索引0的第一个子级上设置--previousHeight,值为0px?这不起作用,因为没有为第一次迭代定义child i=[0-1]确切地说,它是未定义的,children[i-1]&&children[i-1]。偏移| | 0
的计算结果为0没有错误,我想您的意思是height=children[i-1]?children[i-1]。越界:0
计算为false
或true
@Noface它做的事情与Faly wrote做的事情相同。这不起作用,因为没有为第一次迭代定义children=[0-1]确切地说,它是未定义的,children[i-1]和&children[i-1].offsetHeight | | 0
计算结果为0不假,我想你的意思是height=children[I-1]?children[I-1]。offsetHeight:0
计算结果为false
或true
@Noface它做的事情与Faly wrote和子对象[0]相同。style.setProperty('--previousHeight',0+'px');
和子对象[0].style.setProperty('--previousHeight',0+'px');
?