我有一个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"
or "block"
。我尝试了许多不同的方法(例如我在网上看到的 .attr() 和 css. ),但到目前为止没有一个返回我正在寻找的内容。这是我正在使用的最新的:
var displayValue = document.getElementsByClassName($(".view-empty message"))[0].style;
有任何想法吗?我很感激你的帮助。
哦,妈的。灯泡。你的选择器是错误的。改变:
$('.view-empty message').attr('style');
到
$('.view-empty.message').attr('style');
在您的选择器中,您试图获取.view-empty message
在类为 的容器内查找名为 message 的 HTML 元素.view-empty
。相反,您需要为具有两个类的元素指定一个选择器$('.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>
也许尝试一下$(".view-empty message").css('display')
?您还可以设置显示属性$(".view-empty message").css('display', 'none').
我假设您没有使用style='display:none'
作为某种标志/状态变量。如果是的话,也许尝试将 display 属性放在一个类中并使用 jquery 的.addClass()
and .removeClass()
?