" [对象]"为什么我用这个代码得到它?

时间:2016-02-02 11:01:54

标签: javascript jquery html css object

所以我搜索了谷歌和Stackoverflow,但对于我的生活,我似乎无法找到为什么我得到一个" [对象]"带有此代码的警告框。我根本不明白为什么我会这样做。我的代码的哪一部分会发出警报?

<script type="text/javascript" src="jquery.min.js"></script>
            <style>

            #circle{
                background-color: green;
                width:200px;
                height:200px;
                border-radius: 100px;
            }
            .square{
                background-color: red;
                width:300px;
                height:300px;
                margin-top: 10px;
            }
            </style>
            </head>
            <body>
            <div id="circle"></div>
            <div class="square"></div>
            <div class="square"></div>
            <script>
                $("div").click(function(){
                    alert($(this).css("width","400px"));
                });
            </script>
            </body>

2 个答案:

答案 0 :(得分:3)

jQuery css方法已重载。

如果你传递一个参数,这是一个CSS属性的名称,那么它将返回该属性的

如果你传递两个参数,它们是属性的名称和设置它的值,那么它将设置属性,然后返回 jQuery对象(这样你可以将更多的方法调用链接起来)。

将对象转换为字符串时,除非已覆盖toString,否则会获得"[object Object]"

简而言之:因为您要设置数据而不是阅读

答案 1 :(得分:2)

如果您尝试console.log($(this).css("width","400px")),您将会看到它实际上会打印您...一个对象,一个jQuery对象,因此您可以在其上链接方法。 如果要在宽度更改后打印宽度,则必须执行以下操作:

$("div").click(function(){
    alert($(this).css("width","400px").css("width"));
});

这将显示&#34; 400px&#34;。