javascript - 获取父 javascript 的 CSS 最大宽度值

标签 javascript css parent-child

我有这些元素:

<div class="parent"><div class="child"></div></div>

CSS: .parent{max-width:100px}

是否可以使用“child”的“parentNode”(父节点的名称不可预测)获取css中指定的“max-width”值,以便与当前变量数据进行比较?

我在尝试:

var childDIV=querySelector('.child');
var result= childDIV.parentNode.style.maxWidth`

“结果”为空。

另一个尝试是使用“getComputedStyle”方法:

var result =window.getComputedStyle(childDIV.parentNode,null);
result.getPropertyValue("maxWidth");

尽管“getComputedStyle”的值中显示了正确的“maxWidth”值,但“result”为空。

var childDIV=document.querySelector('.child');
var result= childDIV.parentNode.style.maxWidth;
console.log(`Approach 1: ${result}`);

var result =window.getComputedStyle(childDIV.parentNode,null);
result = result.getPropertyValue("maxWidth");
console.log(`Approach 2: ${result}`);
 .parent{max-width:100px}
<div class="parent"><div class="child"></div></div>

最佳答案

您走在正确的轨道上 - 因此,您的第一种方法在这种情况下不起作用,因为该元素在其样式声明中没有直接包含 max-width(请参见下面的示例 .other 用于此 工作的时间)。

第二种方法是正确的,但是你有点混淆了访问参数 - 如果你使用 .getPropertyValue,你使用 CSS 样式 "max-width",并且如果你不这样做,你可以像 .style 那样使用 .maxWidth:

var childDIV=document.querySelector('.child');

var result= document.querySelector('.other').style.maxWidth;
console.log(`Approach 1: ${result}`);

var compStyle = window.getComputedStyle(childDIV.parentNode,null);

result = compStyle.maxWidth;
console.log(`Approach 2: ${result}`);

result = compStyle.getPropertyValue("max-width");
console.log(`Approach 3: ${result}`);
.parent{max-width:100px}
<div class="parent"><div class="child"></div></div>

<div class="other" style="max-width:50px"></div>

关于javascript - 获取父 javascript 的 CSS 最大宽度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57531571/

相关文章:

javascript - 全屏标题后固定导航

html - 防止调整浏览器大小改变 HTML/CSS 布局

mysql - SQL 从结果数据中选择有条件的数据

javascript - 子资源完整性对内联 JavaScript 有用吗?

javascript - 将选项值设置为选项类/ID jQuery

javascript - 提交表单时关闭 featherlight

html - 当我悬停子 il 时,父 ul 应该改变

javascript - JSON.parse 似乎不解析对象数据?

jquery - 单击链接时事件链接颜色不会更改

c# - 使用 WPF 和 MVVM 模式将值从子窗口传递到父窗口