Javascript Can';t将存储远视的两个变量相加
我尝试将两个数字相加,这样我就可以使用CSS calc函数来减少元素的上边距,这样它就只显示标题和顶行文本Javascript Can';t将存储远视的两个变量相加,javascript,Javascript,我尝试将两个数字相加,这样我就可以使用CSS calc函数来减少元素的上边距,这样它就只显示标题和顶行文本 var roomInfoPanel = document.querySelector(".room-info"); var panelCapacityInfo = parseInt(document.querySelector(".room-info__capacity").offsetHeight); var panelTitleRoom =
var roomInfoPanel = document.querySelector(".room-info");
var panelCapacityInfo = parseInt(document.querySelector(".room-info__capacity").offsetHeight);
var panelTitleRoom = parseInt(document.querySelector(".room-info__title").offsetHeight);
var panelCombinedHeights = panelCapacityInfo + panelTitleRoom;
if (panelTitleRoom && panelCapacityInfo) {
document.querySelector(".room-info").style.marginTop = "calc( -" + panelCombinedHeights + "-7vw + -20px)";
}
但是,panelCombinedHeights
始终返回未定义的:(
我不认为这是一个范围问题
parseInt
是在看了这篇文章之后添加的,但是没有它也没有什么好处
我做错了什么?函数
offsetHeigth
已经返回了一个数字,所以这里不需要parseInt()
值panelCapacityInfo
和panelTitleRoom
是否已定义
如果它们未定义,则错误可能出现在querySelector中。函数
offsetHeigth
已经返回了一个数字,因此这里不需要使用parseInt()
值panelCapacityInfo
和panelTitleRoom
是否已定义
如果它们未定义,则错误可能在querySelector中。尝试将变量转换为数字
var roomInfoPanel=document.querySelector(“.roominfo”);
var panelCapacityInfo=parseInt(document.querySelector(“.room-info\uu capacity”).offsetHeight);
var panelTitleRoom=parseInt(document.querySelector(“.room-info\uu title”).offsetHeight);
//将变量转换为数字
//打印要汇总的内容
console.log(panelCapacityInfo,panelTitleRoom)
var panelCombinedHeights=数量(panelCapacityInfo)+数量(panelTitleRoom);
//打印摘要
console.log(面板组合高度)
if(面板标题空间和面板容量信息){
console.log(“要应用的样式:”,“计算(-“+panelCombinedHeights+”-7vw+-20px)”;
document.querySelector(“.room info”).style.marginTop=“计算(-“+panelCombinedHeights+”-7vw+-20px)”;
}
.room info{
高度:200px;
}
.房间信息容量{
高度:100px;
}
.room-info\u标题{
高度:70像素;
}
1.
2.
尝试将变量转换为数字
var roomInfoPanel=document.querySelector(“.roominfo”);
var panelCapacityInfo=parseInt(document.querySelector(“.room-info\uu capacity”).offsetHeight);
var panelTitleRoom=parseInt(document.querySelector(“.room-info\uu title”).offsetHeight);
//将变量转换为数字
//打印要汇总的内容
console.log(panelCapacityInfo,panelTitleRoom)
var panelCombinedHeights=数量(panelCapacityInfo)+数量(panelTitleRoom);
//打印摘要
console.log(面板组合高度)
if(面板标题空间和面板容量信息){
console.log(“要应用的样式:”,“计算(-“+panelCombinedHeights+”-7vw+-20px)”;
document.querySelector(“.room info”).style.marginTop=“计算(-“+panelCombinedHeights+”-7vw+-20px)”;
}
.room info{
高度:200px;
}
.房间信息容量{
高度:100px;
}
.room-info\u标题{
高度:70像素;
}
1.
2.
它们是肯定的。控制台显示它们返回一个数字。它们是肯定的。控制台显示它们返回一个数字。遗憾的是,我担心没有变化:(检查我的答案,按“运行代码片段”-一切正常,可能在添加两个变量时没有问题?遗憾的是,没有变化我担心:(检查我的答案,按“运行代码片段”)-一切正常,也许问题不在于将两个变量相加?
var roomInfoPanel = document.querySelector(".room-info");
var panelCapacityInfo = parseInt(document.querySelector(".room-info__capacity").offsetHeight);
var panelTitleRoom = parseInt(document.querySelector(".room-info__title").offsetHeight);
var panelCombinedHeights = parseInt(panelCapacityInfo) + parseInt(panelCapacityInfo)
if (panelTitleRoom && panelCapacityInfo) {
document.querySelector(".room-info").style.marginTop = "calc( -" + panelCombinedHeights + "-7vw + -20px)";
}