检索内联CSS样式值

时间:2015-05-27 23:07:38

标签: javascript jquery html css

我有一个div,它由基于从其他数据源提取的变量结果的模板自动设置样式。样式值以内联方式设置,如下所示:

<div class="view-empty message" style="display: block;">
    There are no active Invoices to display.
</div>

我已经能够在DOM中看到这一点并来回切换可见性,但到目前为止还无法使用Jquery来检索样式值。我想要做的是根据类搜索div(因为“view-empty message”类是唯一的)并返回style属性的值。所以在这种情况下,我想返回"display: block""block"。我尝试了很多不同的方法(例如我在网上看过的.attr()和css。)到目前为止还没有人回复我正在寻找的东西。这是我正在使用的最新版本:

var displayValue = document.getElementsByClassName($(".view-empty message"))[0].style;

有什么想法吗?我很感激帮助。

2 个答案:

答案 0 :(得分:2)

哦sh * t。灯泡。你的选择器错了。变化:

$('.view-empty message').attr('style');

$('.view-empty.message').attr('style');

在你的选择器中,你试图获得.view-empty message,它在类.view-empty的容器中查找名为message的HTML元素。相反,您需要为具有两个CLASSES $('.view-empty.message');

的元素指定一个选择器

- 现在有用但不相关...... -

您需要指定尝试获取其值的属性。请注意我是如何在'style'方法中指定.attr()属性的。这将检索该属性的值。

$('.view-empty.message').attr('style');

根据.attr()方法的文档,实际上没有一个方法不带参数。 http://api.jquery.com/attr/

当您使用一个值调用方法时,它将返回属性的值。

<div class='foo'></div>

$('.foo').attr('class'); // returns "foo"

当您使用两个值调用方法时,它会在元素上设置一个属性,该属性具有第一个参数的名称和等于第二个参数的值。

<div class='foo'></div>

$('.foo').attr('style', 'display: none;');

<div class='foo' style='display: none;'></div>

答案 1 :(得分:0)

或许试试$(".view-empty message").css('display')? 您还可以使用$(".view-empty message").css('display', 'none').

设置显示属性

我假设您没有使用style='display:none'作为某种类型的标志/状态变量。如果你是,也许尝试将display属性放在一个类中并使用jquery&#39; s .addClass().removeClass()