<img src="a.png" alt="">
<script>
var i = 0;
$('div').click(function () {
if (i%2 == 0){
this.src = 'b.png';
} else {
this.src = 'a.png';
}
i ++;
})
</script>
<img src="a.png" alt="">
<script>
$('div').toggle( //或者hover方法
function () {
this.src = 'b.png';
},
function () {
this.src = 'a.png';
}
)
</script>
toggle:循环单击
hover:鼠标移入移除
上面写两个例子大家可以自己试一下,下面是主要的内容:
注意:当jquery中$方法冲突,可以使用jQuery 即 $() - >jQuery()
jQuery框架:
1. js对象和jquery对象的区别
jquery就是js中的new Object生成的普通对象
下边是jquery原型开发模式:
function $() {
var obj = new Object();
obj.username = 'user123';
obj.say = function () {
alert('my name is : ' + this.username);
return obj;
}
obj.eat = function () {
alert('i am eating');
}
return obj;
}
//对象链式开发
$().say().eat();
2. js对象和jquery对象的方法能不能共用
不能共用
3. js对象和jquery对象的转换
1)js ->jquery $(dom)
2) jquery -> js $('h1')[0] $('h1').get(0) $('h1').get()[0]
请分别看下边两个例子:
<img src="a.jpg" id="imgid">
<script>
var imgobj = document.getElementById('imgid');
// imgobj.onclick = function () {
// this.src = 'b.jpg';
// };
$(imgobj).click(function () {
// this.src = 'b.jpg'; //dom方法
$(this).attr({'src':'b.jpg'}); //jquery方法
})
</script>
<h1>123</h1>
<h1>456</h1>
<script>
var data = $('h1')[0].outerHTML; //或者 $('h1').get(0) $('h1').get()[0]
alert(data); // <h1>123</h1>
var arr = $('h1').get();
console.log(arr); //打印出来的是数组 [h1,h1]
</script>
4. 核心方法
size()
var len = $('h1').size();
console.log(len); //2
length
var len = $('h1').length;
console.log(len); //2
get()
get(index)
each():遍历
<h1>abc</h1>
<h1>abc</h1>
<h1>abc</h1>
<h1>abc</h1>
<script>
$('h1').each(function (i) {
console.log(i); //0,1,2,3
$('h1').get()[i].setAttribute('num',i + 1); //$(this).attr({'num': i+1}) 在标签中加属性了
});
$('h1').click(function () {
this.innerHTML = this.getAttribute('num'); //$(this).html($(this).attr('num'));
})
</script>
index():检索
<ul>
<li id="foo">foo</li>
<li id="bar">bar</li>
<li id="baz">baz</li>
</ul>
<script>
$('li').click(function () {
var index = $(this).index('li');
console.log(index);
})
</script>
data():往jquery对象身上赋值
<h1>abc</h1>
<h1>abc</h1>
<h1>abc</h1>
<h1>abc</h1>
<script>
$('h1').each(function (i) {
console.log(i); //0,1,2,3
$(this).data({'num': i+1}) //不往标签中加属性
});
$('h1').click(function () {
$(this).html($(this).data('num'));
})
</script>
5. 选择器
以下所有选择器都可以点击查看
1)基础选择器
2)层级选择器
3)基本选择器
4)内容选择器
5)属性选择器
- [attribute]
- [attribute=value]
- [attribute!=value]
- [attribute^=value]
- [attribute$=value]
- [attribute*=value]
- [attrSel1][attrSel2][attrSelN]
6)子元素选择器
7)表单选择器
8)表单属性选择器
6. 筛选
1) 过滤
2) 查找
- children([expr])
- find(e|o|e)
- next([expr])
- nextAll([expr])
- parent([expr])
- parents([expr])
- prev([expr])
- prevAll([expr])
- prevUntil([e|e][,f])
- siblings([expr])
3)串联
- add(e|e|h|o[,c])1.9*
- andSelf()1.8-
- addBack()1.9+
7. 属性选择器
1)属性
2)CSS类
3)HTML代码,文本,值
8. 文档处理
1)内部插入
2)外部插入
3)包围
4)替换
5)删除
6)复制
9. CSS处理
1)CSS样式
2)位置
3)尺寸
10. 事件
1) 页面载入
- $(document).ready(fn)
- $(function(){})
2)事件处理
- on(eve,[sel],[data],fn)1.7+
- off(eve,[sel],[fn])1.7+
- bind(type,[data],fn)3.0-
- unbind(t,[d|f])3.0-
- one(type,[data],fn)
- trigger(type,[data])
- triggerHandler(type, [data])
3) 事件委派
4)事件切换
5)事件
- blur([[data],fn])
- change([[data],fn])
- click([[data],fn])
- dblclick([[data],fn])
- error([[data],fn])1.8-
- focus([[data],fn])
- focusin([data],fn)
- focusout([data],fn)
- keydown([[data],fn])
- keypress([[data],fn])
- keyup([[data],fn])
- mousedown([[data],fn])
- mouseenter([[data],fn])
- mouseleave([[data],fn])
- mousemove([[data],fn])
- mouseout([[data],fn])
- mouseover([[data],fn])
- mouseup([[data],fn])
- resize([[data],fn])
- scroll([[data],fn])
- select([[data],fn])
- submit([[data],fn])
11. 效果
1)基本
2)滑动
3)淡入淡出
4)自定义
12. Ajax无刷新
13. 工具