我必须存储元素display
属性的值none
,block
,inline
...),以便稍后恢复。如果从css样式表设置element.style.display
属性,则display
返回空字符串。我如何获得计算值?
解决方案可以使用jQuery或其他库。
答案 0 :(得分:3)
var myDisplay = $('#YourControl').css('display');
这将为您提供可以存储的显示属性
答案 1 :(得分:1)
在这种情况下,他们说:显示属性是自动存储的,
var myDisplay = $('#YourControl').css('display');
如果您想在元素中存储其他数据,
$("#element").data('foo', 52);
恢复存储在此元素中的数据
var mystoredData = $("#element").data('foo');
答案 2 :(得分:1)
如果您没有jQuery,可以使用getComputedStyle
来检测显示属性值:
window.getComputedStyle(YOUR_DOM_ELEMENT).cssText.split('display: ')[1].split(';')[0]
如果你有jQuery,那么就像别人说的那样使用.css('display')
。
答案 3 :(得分:1)
您可以将display属性存储到每个元素的.data()
$('.box').on('click',function(){
displayProp = $(this).css('display'); // read the .css display property
$(this).data('storedDisplayProp', displayProp); // store it into element data
$(this).css({display:'none'}); // modify the .css display
});
并检索它:
$('#undo').on('click',function(){
$('.box').each(function(){
$(this).css({display: $(this).data('storedDisplayProp') }); // read stored data and reset
});
});
答案 4 :(得分:0)
$("#myElemId").css("display");