是否可以仅在以vw单位定义的情况下更改css属性的值?

时间:2017-10-23 03:41:48

标签: jquery css

为清楚起见,问题已更改:我知道如何获取元素的css属性的值。但是,当使用的单位为vw时,.css()返回的字符串将转换为px。我的问题是:我怎样才能确保jQuery返回属性的实际值和单位而不将它们转换为px

1 个答案:

答案 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

这意味着值,无论是使用pxem还是vw指定的,都会返回到像素值。