1.attr属性
首先看一例代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-3.0.0.js"></script>
<style type="text/css">
img{
width: 300px;
height: 300px;
border: 5px solid #ccc;
}
</style>
</head>
<body>
<img src="img/1.jpg"/>
<script type="text/javascript">
$(function(){
$("img").click(function(){
//alert(1);
$("img").attr("width","500");
$("img").attr("height","500");
})
})
</script>
</body>
</html>
读者朋友觉得上面的代码中,有问题么?
如果有的话,问题出在哪儿?
那我们试一下,看它有没有获取到img的宽度呢?
$("img").click(function(){
console.log($("img").attr("width"));
$("img").attr("width","500");
$("img").attr("height","500");
})
console.log的结果是undefined
这说明了没有获取到width。
我们看一下内联的写法
<img src="img/meinv.jpg" width="300" height="300"/>
<div style="width:500px;height:300px;background: #f99;">
记得加px
</div>
长时间不同内联样式,居然忘却了它的存在。
写成上面第一种这种写法就可以正常获取,原因目前正在探索中。
补充:原因已经找到
因为attr设置的是属性
<div style="width:500px;height:300px;background: #f99;">
记得加px
</div>
就像上面这个例子,属性是style,而不是width或者height或者background;
但下面这个就不一样了,
<img src="img/meinv.jpg" width="300" height="300"/>
属性时width和height。
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-3.0.0.js"></script>
<style type="text/css">
img{
border: 5px solid #ccc;
}
</style>
</head>
<body>
<img src="img/1.jpg" width="300" height="300"/>
<script type="text/javascript">
$(function(){
$("img").click(function(){
//alert(1);
console.log($("img").attr("width"));
$("img").attr("width","500");
$("img").attr("height","500");
})
})
</script>
</body>
</html>
重点在这里
<img src="img/1.jpg" width="300" height="300"/>
我们再看看这两行代码
$("img").attr("width","500");
$("img").attr("height","500");
还可以这样写:
$("img").attr({"width":"500","height":"500"});