Jquery和Javascript没有返回显示样式的实际值

时间:2015-07-29 10:26:21

标签: javascript jquery html

我有一个简单的javascript代码,用于设置div的显示=" block"然后显示="" (一个空值)但是当我尝试使用Jquery和本机javascript获取显示样式的值时,两者都返回值为" block"将其重置为空值后。 如何使用这两个中的任何一个获得正确的值(空白值)?

我需要将其设置为空白而不是“无”,因为它已在数千个地方的产品中使用。

<!DOCTYPE html>
<html>
<head>
    <script src="jquery-1.11.0.js"></script>
    <script type="text/javascript">
        function getDivStyle(){
            var myDiv = document.getElementById("testDiv");
            var before = $('#testDiv').css('display');
            $('#testDiv').css('display', '');
            var after = $('#testDiv').css('display');
            var computed = getComputedStyle(myDiv).getPropertyValue("display");
            console.log("before-> " + before +"  ----  after-> "+ after+"  ---- computed-> " + computed);
    };
    </script>
</head>
<body>

    <div id="testDiv" style="display:block; height:100px; width:500px; border: 1px solid red;">
    test div
    </div>
    <input value="get style" type="button" onclick="getDivStyle()"></input>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

显示的语法是

display: value;

如果您不希望显示您的元素,则需要将其更改为none或您想要的任何其他值。如果将其设置为空白,则将采用默认值。

编辑:

这似乎有效

document.getElementById("testDiv").style.display

答案 1 :(得分:0)

根据上面的所有评论,设置关闭显示的正确方法是设置display =“none”。但在这种情况下,如果将其设置为空值以获取我们可以使用的值

element.style.display;

因为这会返回一个空白值。