当插入带有“px”的值时,图像属性被设置为零。进入jquery的attr方法
我发现 jquery attr() 方法不喜欢接受其中带有“px”的值。生成的图像最终宽度和高度为零!这是一个错误、疏忽还是某些功能?
这很容易解决,但我真的不喜欢设置没有单位的值。这可能会导致不可预测的行为。
在 Firefox 3.6 和 Opera 11 中测试了以下内容:
<html>
<head>
<script type="text/javascript" src="../jquery-1.4.min.js"></script>
<script type="text/javascript" src="return.js"></script>
</head>
<body>
<div id="links" style="width:500px; background:#000;">
<img src="images/ref.png" width="500px" height="500px" alt="reference" />
</div>
</body>
</html>
$(document).ready(function(){
$('div#links').css({ 'height':"300px" });
$('div#links img').attr({ 'width':"100px", 'height':"100px" }); // This doesn't work!
//$('div#links img').attr({ 'width':"100", 'height':"100" }); // This works.
});
I found that the jquery attr() method doesn't like accepting values with "px" in them. The resulting images end up with zero width and height! Is this a bug, an oversight or some feature?
It is easy to get around, but I really don't like setting values without units. It could lead to unpredictable behaviour.
Tested the following in firefox 3.6 and opera 11:
<html>
<head>
<script type="text/javascript" src="../jquery-1.4.min.js"></script>
<script type="text/javascript" src="return.js"></script>
</head>
<body>
<div id="links" style="width:500px; background:#000;">
<img src="images/ref.png" width="500px" height="500px" alt="reference" />
</div>
</body>
</html>
$(document).ready(function(){
$('div#links').css({ 'height':"300px" });
$('div#links img').attr({ 'width':"100px", 'height':"100px" }); // This doesn't work!
//$('div#links img').attr({ 'width':"100", 'height':"100" }); // This works.
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您使用
attr
时,您正在设置一个属性。您使用css
来设置style
属性。您不会在 HTML 的
width
属性中使用px
,因此您也不会在attr
中使用它。When you use
attr
, you are setting an attribute. You usecss
for setting astyle
property.You wouldn't use
px
in awidth
attribute in HTML, so you don't use it inattr
either.