找出元素是否有声明的值
Find out if element has a declared value
我想添加一个方法到一个模块(认为web组件),检测高度是否已设置为其根元素,如果没有-计算其高度基于其他因素
这个模块有一些绝对的定位和其他"花哨"的东西,所以正常的流动是不可能的。
我正在考虑通过document.styleSheets
循环并检查每个cssRule
的selectorText
中根元素的id或类,然后解析cssText
或寻找style
对象内的"高度"的非空键。
是否有更好的(或标准的)方法来做这件事?
PS -我可能刚刚解决了它,而制定的问题,所以如果你遇到同样的问题-这里你去!
这是一个非常粗糙的实现:
isHeightSet: function () {
var id = this.elements.root.id,
_isHeightSet = false; // the crude part ;-)
// go through stylesheets
_.each(document.styleSheets, function(styleSheet) {
// go through rules
_.each(styleSheet.cssRules, function(cssRule) {
// if selectorText contains our id
if (cssRule.selectorText && cssRule.selectorText.indexOf(id) !== -1) {
// check if the height is set
if (cssRule.style.height &&
(cssRule.style.height !== 'auto' &&
cssRule.style.height !== 'inherit')) {
// keep on hacking!
_isHeightSet = true;
}
}
});
});
return _isHeightSet;
}
可能更健壮,但似乎工作得很好。
相关文章:
- 此行是否包含函数声明
- 是否可以在另一个变量中使用未声明的变量
- 是否可以在 Javascript 中将未声明的变量作为参数传递
- 在JS中用引号声明对象和数组是否更快
- 这个 getter-setter 闭包是否有充分的理由以这种方式在其内部对象中声明它是私有的
- 如果某个函数没有优化,这是否意味着声明它的所有函数也没有优化
- 函数声明是否在 Javascript 中创建对象?
- 在 JavaScript 中,当一次声明多个变量时,仅使用一个 var 语句是否有内存优势
- ES6/7 中是否有“声明”关键字
- 在 JavaScript 中,在声明对象的新键:值对时,引用对象的变量名与使用“this”之间是否存在差异
- 对象属性的分配顺序是否与声明顺序相同
- 如果我用 let 声明它,我是否需要删除 javascript 中的对象
- 声明函数是否会创建具有函数名称和分配给它的函数对象的变量
- 类方法是否可以在 ES 6 或 7 中声明为引用
- 构造函数中的私有函数声明是否在每次创建实例时重新实例化
- 每次调用函数时,是否都会重新创建函数中声明的字符串变量
- 变量声明是否成为ecmascript 6模块中窗口的属性
- JavaScript函数声明是否返回对函数的引用
- 在javascript中规范化本地声明是否重要
- 原型中的函数声明是否“污染”了?的原型