最新免费视频:www.pythonav.com (冒着被砍死的风险)

jQuery2

JS对象和jQuery对象的方法能否共用?
不能!

对象是否可互换?
可以! $(dom)

this代表的是dom对象
$(this)代表的是jQuery对象,后面可以用jq方法

js对象和jq对象的区别是什么?
jq对象就是js中的new object生成的普通对象

如何把jq对象转换为js对象?
var val= $("h1")[0].outerHTML;
var val = $("h1").get(0).outerHTML;

var val = $("h1").html
代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>单击换行号</title>
    <script src="dashboard/jquery-3.2.1.min.js"></script>
</head>
<body>
<h1>aa</h1>
<h1>aa</h1>
<h1>aa</h1>
<h1>aa</h1>
<h1>aa</h1>
</body>
<script>
    如下
</script>
</html>
###核心方法


```
1. attr() :要修改标签的属性,就如下代码,会给h1标签里面增加一个num属性.
2. data() : 往jQuery对象身上赋属性或者值,他不会动标签属性.只是通过data存进去一个值,然后再通过data取出来.  建议用data.

3. each();遍历,

    for循环在jquery里面的代名词就是each,
    $("h1").each(function (i) {
//        alert(i)
//        $("h1").get()[i]  #转换为dom对象
//        $("h1").get()[i].setAttribute("num",i+1)   js方法
        $(this).data({'num':'i+1'})
    });

//    批量加
    $('h1').click(function () {
//        this.innerHTML = this.getAttribute("num")  js方法
        $(this).html($(this).data('num'))
    })
    把五个h1标签对象进行遍历.
    
    

#获取jquery对象中dom对象的个数
4. size();   #dom对象个数
5. length;  俩其实一样,只不过这个是属性


6. get(); 全拿出来,是个数组,类似于对象集合
7. get(index);   得到对象,用于互换身份

8. index(); 它只是找到索引位置,
9. eq(index); 他是把该索引位置的标签对象拿到

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
    <style>
        *{
            margin: 0px;
            padding: 0px;
            font-family:Sana;
        }
        .menu{
            height: 50px;
            line-height: 40px;
            background: #272822;

        }
        .menu ul{
            list-style: none;
        }

        .menu ul li{
            float: left;
            color: #fff;
            margin-left: 15px;
            line-height: 50px;
            text-align: center;
            width: 100px;
        }
        
        .menu ul li:hover{
            cursor:pointer;
            background: #ccc;
        }
        
        .menu ul li:first-child{
            /*background: #cccccc;*/
        }
        
        .info{
            height: 200px;
            background: #cccccc;
            overflow: hidden;
            padding: 15px;
            color: #fff;
        }

        .info p {
            display: none;
        }

        .info p:first-child{
            display: block;
        }


    </style>
    <script src="dashboard/jquery-3.2.1.min.js"></script>
</head>
<body>
<div class="menu">
<ul>
    <li>bigfly</li>
    <li>sbxy</li>
    <li>666</li>
</ul>
</div>

<div class="info">
    <p>bigfly!!!🤗🤗🤗bigfly!!!🤗🤗🤗</p>
    <p>666!!!🌚🌚🌚666!!!🌚🌚🌚</p>
    <p>xysb!!!🌞🌞🌞xysb!!!🌞🌞🌞</p>
</div>
</body>
<script>
    $('.menu li').eq(0).css({'background':'#ccc'});
    $('.menu li').mouseenter(function () {
        $(this).css({'background':'#ccc'});
        $('.menu li').not($(this)).css({'background':'#272822'});

        //查this在所有的li里面排第几个
        var idx = $(this).index('.menu li');
        $('.info p').eq(idx).show();
        $('.info p').not($('.info p').eq(idx)).hide()
    })
</script>
</html>

```

######jQuery中$方法冲突,解决办法 :
1. $();
2. jQuery();


```
: 是用来修饰前面的选择器的,都是修饰器,基本不能单独存在,如果知道是要修饰谁可以不加选择器

. 是方法
```

```
基本选择器
:even 偶数
:odd  奇数
:eq(1)   索引等于1
:gt(1)   大于1
:lt(1)   小于1
```

```
内容选择器
:has()    $('div:has(a)') 含有a标签的div标签
:empty   空的
:parent  匹配有孩子的父亲,含有子标签或者文本的元素,空格都算.


表单对象属性 :
:checked 找到所有被选中的元素(不包括select中的option)


筛选和基础选择器(  > + ~)共同的任务都是找元素

.add() 串联筛选器
.andSelf  串联上自己   $('div').next().andSelf().css({'color':'#ccc'}) 


查找
筛选
第一种父子关系或者祖先和后代关系
关系查找:
parent() 父亲
children() 孩子 子元素

第二种就是同辈关系,也就是兄弟关系

关系查找
prev() 上一个兄弟
prevAll() 上面所有的兄弟
next()下一个兄弟
nextAll() 后面所有的兄弟
sibilings() 前后所有的兄弟
find() 后代查找
```

```
属性
1. 属性
attr();
attr({});   获取属性值,建议使用{}

2. CSS类
addClass(); 给一个标签加类名
removeClass();
toggleClass(); 切换类

3. HTML代码
html();
html(val);

4. 文本
text();
text(val);

5. 值
val();
val(val);  可获取也可以赋值

```

######文档处理
```
######内部插入 剪贴作用
append(content|fn)-->往后加
appendTo(content)
A.append(B) 把B添加到A后面
A.appendTo(B) 把A添加到B的后面 

######外部插入
往前加
A.before(B) 把B插入到A的前面
A.insertBfore(B) 把A插入到B的前面
往后加
A.after(B) 把B插入到A的后面
A.insertAfter(B)  把A添加到B的后面

######包裹  
选中一个等待被包裹的对象,后面就是拿什么包.
wrap()
unwrap()  取消.wrap()方法的效果.
wrapAll()  将所有匹配的元素用单个元素包裹起来.如果中间有别的标签,会将不匹配的标签拿出来放到效果后.
wrapInner() 弥补ALL的缺陷

######替换
replaceWith()
	A.replaceWith(B)   B替换A
replaceAll() 前面的替换后面的

######删除
empty()  内容清空,标签还在,内部清空
remove()  删除,整体都删除
detach() 从DOM中删除所有匹配的元素,与remove()不同的是,所有绑定的事件和附加的数据等都会包保留下来.

######复制
clone([Even[,deepEven]])   #后面可以加一个参数true,事件都克隆

#####动画

基本
	show([s,[e],[fn]])
	hide([s,[e],[fn]])
	toggle([s],[e],[fn])
	
滑动
	实际上是改变的元素的高度
	slideDown([s],[e],[fn])
	slideUp([s,[e],[fn]])
	slideToggle([s],[e],[fn])
	
淡入淡出 : 透明度
	fadeIn([s],[e],[fn])
	fadeOut([s],[e],[fn])
	
	fadeTo([[s],o,[e],[fn]])
		- 淡出到0.66透明度
	fadeToggle([s,[e],[fn]])
		- .fadeToggle(3000, function () {
            alert("666");
        });
		
自定义
animate(p,[s],[e],[fn])1.8*
	- css属性值都可以设置
	- 女朋友变小(漏气)

######事件处理
	
	之前绑定事件的方式:
		1. onclick=clickMe();  function clickMe() {}
		2. ele.onclick = function(){}
		3. ele.addEventListener("click", function(){})
	
	jQuery绑定事件的方式:
		1. $(ele).on("click", function(){})
如果不需要使用事件委托的话.可以直接写$(ele).click(function(){})
		2. $("tbody").delegate(".btn-warning", "click", function(){})
		3. $("tbody").on("click",".btn-warning",function(){})  我们要用的事件委派

```


$("tbody").on("click",".btn-warning",function(){}) 

$(ele).on("click", function(){})

$(ele).click(function(){})


```
编辑操作:
弹出模态框
然后给模态框赋值:   1.取值 2.赋值
点击模态框上的提交按钮. 1. 隐藏模态框.  2. 更新td的值.
```




```
常用事件!!


重点:
jQuery扩展 : 

```




```
#### e.target与this的区别

event.target表示发生点击事件的元素
this表示注册点击事件的元素

this 等于 e.currentTarget  指的是现在的目标
this是所有原生函数具有的,进入函数时,this已经有了目标对象

而e.target是通过e再寻找target,中转了一下. 所以相比较而言,this的执行效率更高一些.

有元素嵌套时,这两个就不相等了.
<div><img src="..."></div>

<script>
$('div').click(function() {
e.target 表示事件触发元素这里会是img
this 始终指向绑定事件的元素也就是div
});
</script>
```



	```
	#### 事件捕获和事件冒泡
	Example:
		<div>
			<p>元素</p>
		</div>
		
	这俩元素都绑定了click事件,如果用户点击了p,它在div和p上都触发了click事件,那这两个事件处理程序哪个先执行?事件顺序是什么?
	
	事件冒泡 : 当你使用事件冒泡时,子级元素先触发,父级元素后触发. 也就是p先触发
	事件捕获 : 使用事件捕获时,父级元素先触发,子级元素后触发. 也就是div先触发
	
	在W3C模型中,可以自己选择使用绑定事件时,使用冒泡还是捕获.
	方法 : addEventListener函数. 它包含三个参数,第三个参数如果是true就采用事件捕获,如果是false就采用事件冒泡.
	
	ele.addEventListener('click',function(),true/false)
	
	true : 事件句柄在捕获阶段执行
	false : 默认为false.事件句柄在冒泡阶段执行
	
	```
```
jQuery扩展
$.***()
	给jQuery添加扩展
	$.extend({
	'aa':function(){
		console.log('666)})
		$.aa()
		
$('').***()
	给jQuery对象添加将扩展
	$.fn.extend({
	'bb':function(){
		console.log('777')
		}
	})
	
	$(':input').bb()
```


```
文档树加载完之后绑定事件(大部分情况下)
	$(document).ready(function){
	}
	简写
	$(function($){
	}
```
posted @ 2017-10-22 19:33  uuuuuuu  阅读(149)  评论(0编辑  收藏  举报

最新免费视频:www.pythonav.com (冒着被砍死的风险)