# jQuery

> jQuery是一个是免费、开源的javascript库, 也是目前使用最广泛的javascript函数库。
>
> jQuery极大的方便你完成web前段的相关操作,例如节点操作,元素操作,事件绑定,ajax操作, 且解决了大多数的兼容性问题
>
> jQuery的版本分为1.x系列和2.x、3.x系列,1.x系列兼容低版本的浏览器,2.x、3.x系列放弃支持低版本浏览器,目前使用最多的是1.x系列的。
>
> [http://jquery.com/](http://jquery.com/)官方网站

jquery是一个函数库,一个js文件,页面用script标签引入这个js文件就可以使用。

```
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
```

## jquery选择器

**jquery用法思想**
选择某个网页元素,然后对它进行某种操作

**jquery选择器**
jquery选择器可以快速地选择元素,选择规则和css样式相同



### 基础选择器

```
//通过id来获取元素 document.getElementById();
// $('#logo').css('border','solid 2px red');
//通过标签名来获取元素
// $('li').css('background','#369');
//通过class类名获取元素
// $('.w').css('background','#369');
//逗号 并列获取
// $('#logo,#menu').css('background','#369');
//空格 层级获取
// $('#images li').css('background','#369');
```


### 过滤获取

```
//获取第一个和最后一个元素
// $('ul li:first').css('background','#369');
// $('ul li:last').css('background','#369');
//获取指定索引的元素 索引从0开始 
// $('li:eq(7)').css('background','#369');
// $('li').eq(7).css('background','#369');
//获取包含指定文本的元素
// $('li:contains(国)').css('background','#369');
//通过包含指定属性来获取元素 通过属性来获取
// $('li[name=y]').css('background','#369');
```



### 父子关系获取

```
//获取所有的子元素
// $('#images').children().css('background','#369');
//获取第一个子元素
// $('ul li:first-child').css('background','#369');
//获取最后一个子元素
// $('ul li:last-child').css('background','#369');
//获取指定个数的子元素 个数从1开始
// $('ul li:nth-child(3)').css('background','#369');

//获取元素上一个同级元素
// $('#f').prev().css('background','#369');
//获取元素下一个同级元素
// $('#f').next().css('background','#369');
//获取同辈元素 (同辈元素不包含自己)
// $('#f').siblings().css('background','#369');


//获取父级元素
// $('#f').parent().css('background','#369');
//获取先辈级元素
// $('#f').parents('#all').css('border','solid 1px red');

//在父级元素中查找指定的子元素
$('#images').find('.w').css('background','#369');
```



# jQuery元素操作

通过jQuery可以操作控制元素的样式,文本,属性等

## jquery样式操作

**css操作行内样式**

```
// 获取div的样式
$("div").css("width");
$("div").css("color");


//设置div的样式
$("div").css("width","30px");
$("div").css("height","30px");
$("div").css({fontSize:"30px",color:"red"});


```

**特别注意**
选择器获取的多个元素,获取信息获取的是第一个,比如:$("div").css("width"),获取的是第一个div的width。

## 类名class操作

**操作样式类名**

```
$("#div1").addClass("divClass2") //为id为div1的对象追加样式divClass2
$("#div1").removeClass("divClass")  //移除id为div1的对象的class名为divClass的样式
$("#div1").removeClass("divClass divClass2") //移除多个样式
$("#div1").toggleClass("anotherClass") //重复切换anotherClass样式

```



## 文本操作

**1、html() 取出或设置html内容**

```
// 取出html内容

var $htm = $('#div1').html();

// 设置html内容

$('#div1').html('<span>添加文字</span>');

```

**2、text() 取出或设置text内容**

```
// 取出文本内容

var $htm = $('#div1').text();

// 设置文本内容

$('#div1').text('<span>添加文字</span>');

```



## 属性操作

**1、attr() 取出或设置某个属性的值**

```
// 取出图片的地址

var Src = $('#img1').attr('src');

// 设置图片的地址和alt属性

$('#img1').attr({ src: "test.jpg", alt: "Test Image" });

//也可以用户设置class属性
$('#abc').attr('class','all')

//也可以自定义 属性
$('#abc').attr('love','iloveyou')

```


**2、removeattr()删除属性**

```
$('#abc').removeattr('class')

$('#abc').removeattr('love')
```