【发布时间】:2020-04-16 23:44:52
【问题描述】:
给定以下 CSS:
.myClass1 {
width: 50px;
}
.myClass2 {
width: 150px;
}
还有以下 HTML:
...
<div id="myDiv">...</div>
...
有没有办法在不引用元素本身的情况下确定类内部的值?
JQuery.someFunc(".myClass1").width()
或者我是否必须将类分配给元素,然后像这样检查实际的属性值:
function CheckClassWidthValue() {
var $myDiv = $("#myDiv");
$myDiv.removeClass();
$myDiv.addClass("myClass1");
var class1Width = $myDiv.width();
$myDiv.removeClass();
$myDiv.addClass("myClass2");
var class2Width = $myDiv.width();
}
如果我可以直接从 CSS 类名中提取值,我正在编写的代码会更简洁。最好避免定位 CSS 元素,解析代码。
谢谢!
【问题讨论】:
-
鉴于 css 规则(通常)不应该是动态的,您应该已经知道 css 规则的组成是什么。
-
您显示的两个类都有无效的声明。您只能在零长度上省略单位(并且应该)。
-
stackoverflow.com/questions/324486/… 我会看看这个问题。这不是一个 jQuery 答案,但它会给你更多的洞察力,也许是一个解决方案。
-
我想问你为什么觉得有必要这样做?通常,这种方法是代码异味,表明存在更大的问题