为清楚起见,问题已更改:我知道如何获取元素的css属性的值。但是,当使用的单位为vw
时,.css()
返回的字符串将转换为px
。我的问题是:我怎样才能确保jQuery返回属性的实际值和单位而不将它们转换为px
?
答案 0 :(得分:2)
如果你知道该属性的值是vw
个单位,你可以在字符串中搜索。
考虑:
var prop = $('.selector').css('width');
prop
将包含计算宽度的字符串值。 .width()
不会返回一个表示像素数的整数值。
现在我们检查您的情况。如果宽度是' 20vw',我们只需检查字符串并测试' vw':
if($('.selector').css('width').slice(-2) == "vw"){
// Do a thing
}
如果你有一个更大的群组,你可能想要使用 .each()
。希望有所帮助。
<强>更新强>
评论:Select all elements that have a specific CSS, using jQuery
您不能(使用CSS选择器)根据已应用于它们的CSS属性选择元素。
如果您需要检查元素,可以尝试以下几点:
var elemList = [];
$("*:not(html, head, meta, title, script, link, style, body)").each(function(ind, elem) {
/* Perform test
if(){
elemList.push($(elem));
}
*/
});
如果您可以添加到代码中,则可以为使用&#39; vw&#39;的每个元素添加一个类.vw
。然后,您可以轻松地一次性选择它们:$(".vw")
。
使用jQuery,您只能获得计算值。
Get actual value specified in CSS using jQuery
这意味着值,无论是使用px
,em
还是vw
指定的,都会返回到像素值。