# jQuery操作DOM 和 增删改查
- 1.html()
```js
$(\'ul li\').html();//获取ul下第一个li元素下的内容
$(\'ul li\').html(\'9\');//把ul下所有li元素下的内容改为9
$(\'ul li\').html(function(index, ele){
return \'<p style="color:orange">\'+ index +\'</p>\'
});//把ul下所有li元素下的内容改为return的内容
```
- 2.text()
```js
$(\'ul\').text();//获取ul元素的后代元素的所有文本节点
$(\'ul li\').text(function(index, ele){
return \'<p style="color:orange">\'+ index +\'</p>\'
});//把ul下所有li元素下的内容改为return的字符串信息
```
- 3.size()
```js
$(\'ul li\').size();//获取ul下li元素的个数
```
- 4.addClass()
```js
$(\'.demo\').addClass(\'demo1 demo2\');
$(\'.demo\').addClass(function(index, ele){
return \'demo1\';//在原来class=\'demo\'的基础上,加上demo1
});
```
- 5.removeClass() 移除class
- 6.hasClass() 是否拥有某个class名
- 7.css()
```js
$(\'.demo\').css({width:\'100px\', height:\'100px\', backgroundColor:\'red\'});//赋值操作
$(\'.demo\').css(\'width\');//取值操作
```
- 8.attr() 基于setAttribute getAttribute 自定义属性,和行间属性
```js
$(\'.demo\').attr(\'class\');//取值
$(\'.demo\').attr(\'class\', \'wrapper\');//赋值
```
- 9.prop() 基于原生JS的dom对象的特性操作,特性映射,非特性不能映射
```js
$(\'.demo\').prop(\'class\');//取值,对于自定义属性不能取值
$(\'.demo\').prop(\'checked\');//取值,对于自定义属性不能取值
$(\'.demo\').prop(\'class\', \'wrapper\');//赋值
```
- 10.val() 取值和赋值操作,赋和取表单元素相关的值
```js
$(\'input\').val();//取值
$(\'input\').val(\'123\');//赋值
$(\'input[type="checkbox"]\').val(function(index, oldValue){
return oldValue + index;
});
```
## 增删改查操作
### 查找
- 1.next() 获取下一个兄弟元素节点
- 2.prev() 获取上一个兄弟元素节点
- 3.prevAll() 获取同级的下面兄弟元素节点
- 4.nextAll() 获取同级的上面的兄弟元素节点
- 5.prevUntil() 获取同级的上面的兄弟元素,直到XXX为止
- 6.nextUntil() 获取同级的下面的兄弟元素,直到XXX为止
```js
$(h1).next().click(function(){
if($(this).prop(\'checked\')){
$(this).nextUntil(\'h1\', \'input[type="checkbox"]\').prop(\'checked\', true);//找到同级的下面的元素,直到h1元素为止,且只找到里面input[type="checkbox"]的元素
}else{
$(this).nextUntil(\'h1\', \'input[type="checkbox"]\').prop(\'checked\', false);//
}
});
```
- 7.siblings() 获取到同级元素的所有兄弟元素节点
```js
$(\'.demo\').siblings(\'span\');//获取到同级的所有span元素
```
- 8.parent() 获取到上一级元素节点
- 9.parents() 获取到所有祖先元素节点
- 10.offsetParent() 获取离自己最近的有定位的祖先元素
- 11.closest() 获得匹配选择器的第一个祖先元素,从自己(当前元素)开始沿 DOM 树向上。
- 12.slice() 截取元素
```js
$(\'.demo\').slice(1, 2);//截取第一个到第二个元素(不包括第二个元素)
```
### 增加 改变元素
- 13.insertBefore()
```js
$(\'.content\').insertBefore(\'.box\');//在.box之前插入.content
```
- 14.before()
```js
$(\'.box\').before( $(\'.content\') );//在.box之前插入.content
```
- 15.insertAfter()
```js
$(\'.content\').insertAfter(\'.box\');//在.box之后插入.content
```
- 16.after()
```js
$(\'.box\').after( $(\'.content\') );//在.box之后插入.content
```
- 17.appendTo()
```js
$(\'.demo\').appendTo(\'.container\');//把.demo添加到.container元素里面成为最后一个子元素,剪切操作
```
- 18.append()
```js
$(\'.container\').append( $(\'.demo\') );//把.demo添加到.container里面成为最后一个子元素,剪切操作
```
- 19.prependTo()
```js
$(\'.demo\').prependTo(\'.container\');//把.demo添加到.container元素里面成为第一个子元素,剪切操作
```
- 20.prepend()
```js
$(\'.container\').prependTo( $(\'.demo\') );//把.demo添加到.container里面成为最后一个子元素,剪切操作
```
### 删除元素
- 21.remove()
```js
$(\'.demo\').remove().appendTo(\'.container\');//先删除.demo元素,后把.demo元素添加到.container元素里面成为最后一个子元素。这样删除的.demo元素,自身捆绑的事件(click, blur等)就会同时删除
```
- 22.detach()
```js
$(\'.demo\').detach().appendTo(\'.container\');//先删除.demo元素,后把.demo元素添加到.container元素里面成为最后一个子元素。这样删除的.demo元素,自身捆绑的事件(click, blur等)不会同时删除
```
### 添加包裹元素
- 23.wrap()
```js
$(\'.demo\').wrap(\'<div class="container"></div>\');//为.demo元素包裹一层wrap()函数中的元素,对wrap()函数中的元素进行复制操作
$(\'demo\').wrap(fuction(index){
return \'<div>\' + index + \'</div>\';
});//为每一个.demo元素都包裹一层return的元素
```
- 24.wrapInner()
```js
$(\'.demo\').wrapInner(\'<div class="container"></div>\');//把.demo里面的元素包裹一层wrap()函数中的元素
```
- 25.wrapAll()
```js
$(\'.demo\').wrapAll(\'<div class="container"></div>\');//给所有的.demo加上一个统一的父元素.container,注意所有的.demo元素最好是同级元素
```
- 25.unwrap()
```js
$(\'.demo\').unwrap();//把.demo的直接父级删掉
```
### 特殊的
$() 创建jQuery对象
```js
$(\'<div></div>\');//可以直接通过$()创建一个jQuery对象
```
以上是markdown格式的笔记