所以我搜索了谷歌和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>
答案 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;。