web前端 -- jQuery -- $ 与 jQuery 以及操作属性
根据千峰教育学习视频所练习的笔记 | 学习一段时间,我也有写一点东西的必要了···
我们知道,在jQuery中,$ 是jQuery的别名,那我们就能通过 $ 做很多事情。
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191010112033280-1645569157.png)
## 1. 首先我们就能通过 $ 在页面上选取元素。
1)假设页面上有这样一个 ul , ul 下有若干 li 。
```html
- 1
- 2
- 3
- 4
- 5
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191008120007119-2122038246.png)
## 2. $ 选中元素之后能做的事情
首先,它可以操作许多属性(html,val,prop,attr,class),另外,它可以让元素有一些动画的效果,我们还能遍历这个元素相关的其他元素,对这个元素进行dom操作(添加/删除元素),以及Ajax和事件的绑定,我们来看一下操作属性。
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191010112602484-135248106.png)
2.1.1. 先来操作属性:html
1)设定和取到html
<script src="jquery-3.4.1.min.js"></script>
<script>
alert($('ul').html());
//调用函数的时候不传参数,这样的话就能得到ul的html
</script>
2)刷新页面,可以看到ul下的html就得到了:
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191008120339227-2064791528.png)
### 2.1.2. 操作属性:val
1)val 取得和设定input标签的的value内容
```html
```
2)这时页面就会有一个value,从键盘传入一个字符a,我们就得到了value a :
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191008120413707-1056482488.png)
3)如果我想对val进行设定,想在value后面加一些字符:固定在最后加一个单位,px
```html
```
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191008140831356-1480272879.png)
4)为避免px重复添加。进行一个判断,当前字符最后两个字符是px,我们就不加,否则就加
```html
```
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191008141045284-706104227.png)
### 2.1.3. property和attribute属性
前者是dom树上选区的节点对象的属性,后者是标签上的属性。通常来说,这两个属性值一一对应,property的class Name与attribute的class ,它们叫法不同,值是相同的。一般看作这两个属性是没有去别。
1)但是checkbox的属性是要区分的
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<input type="text"/>
<label>选中<input type="checkbox" checked="checked"></label>
<!--checked默认勾选-->
<script src="jquery-3.4.1.min.js"></script>
<script>
$('input').keyup(function(){
var v = $(this).val();
if(v.slice(-2)!=='px'){
$(this).val(v + 'px');
}
})
//添加input的change事件
$('input[type=checkbox]').change(function(){//监听change事件
console.log($(this).attr('checked'));
})
</script>
</body>
刷新页面,按中F12,无论怎么点选选中,会发现全是checkbox:
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191008142020406-1661261076.png)
2)当我们设定完默认值之后,checked属性attr就不能再使用了。这个时候用propoty来判断当前是否被选中,并且通过这个属性来判断应不应该被选中。
将上面代码的进行修改:
//console.log($(this).attr('checked'));
console.log($(this).prop('checked'));
这个时候回到浏览器,按中F12,看到选中返回true 取消选中返回false:
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191008142042277-635871728.png)
2.1.4. 最后介绍关于类的4种方法
addClass将一个类添加到元素上,removeClass和它相反。hasClass判断这个类在元素中是否存在,toggleClass用于切换类。
1)假设我页面上有一个div,现在去添加样式
<style type="text/css">
div{
width: 100px;
height: 100px;
cursor: pointer;
}
.play{
background-color: pink;
}
.pause{
background-color: #87CEEB;
}
</style>
<body>
<div class="pause"></div>
<!--添加默认class.效果:在两个状态之间切换。
点击div,从暂停变为播放,再点击,从播放变为暂停-->
<script src="jquery-3.4.1.min.js"></script>
<script>
$('input').keyup(function(){
var v = $(this).val();
if(v.slice(-2)!=='px'){
$(this).val(v + 'px');
}
})
$('input[type=checkbox]').change(function(){
console.log($(this).prop('checked'));
})
//绑定div的绑定事件
$('div').click(function(){
//将pause进行toggle.当元素中有这个类就删除,否则添加
$(this).toggleClass('pause');
$(this).toggleClass('play');
// 经过这个操作,就能来回切换啦
})
</script>
</body>
点击前是默认暂停状态(蓝色),点击后切换到播放状态(粉色)
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191008120936996-1611516658.png)
![](https://img2018.cnblogs.com/blog/1817586/201910/1817586-20191008121010112-656932043.png)