What is jQuery?
jQuery is a fast, small, and feature-rich JavaScript library.
ready()
1 2 3
| $(document).ready(function() { //逻辑处理 });
|
ready() 的作用是等页面的文档(document)中的节点都加载完毕后,再执行后续的代码,因为我们在执行代码的时候,可能会依赖页面的某一个元素,我们要确保这个元素真正的的被加载完毕后才能正确的使用。
原生JS 和 jQ
1 2 3 4 5 6 7 8 9 10 11 12
| window.onload = function(){ var p = document.getElementById('#xxx'); p.innerHTML = 'hello 我是原生方式操作dom'; p.style.color = 'red'; } ..... // jquery
$(document).ready(function(){ var $p = $('#yyy'); $p.html('hello 我是jqery方式操作dom').css('color','red'); })
|
通过jQuery方法包装后的对象,是一个类数组对象。它与DOM对象完全不同,唯一相似的是它们都能操作DOM。
dom对象和 jq对象相互转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <div></div> <div></div> <div></div> ... // 返回一个类数组对象 包含三个div的jq对象 var $div = $('div'); // 转换为原生对象 var oDiv = $div[0] oDiv.style.color = 'red';
//也可以使用get(索引) 转换成dom对象 var oDiv2 = $div.get(1);
... dom对象转 jq对象 //getElementsByTagName() 返回的是一个集合,dom对象数组 三个div var aDiv = document.getElementsByTagName('div'); // 转换jq对象只需要这样 var $div = $(aDiv) $div.first().css('background','red');
|
id选择器
1 2 3
| <div id="oDiv"></div> //注意 id是唯一的 如果存在多个相同id的元素 ,则只返回第一个dom元素 $('#oDiv')
|
class选择器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <div class="xxx"></div> <div class="xxx"></div> <div class="xxx"></div> ... //通过原生方法处理 //样式是可以多选的,所以得到的是一个合集 //需要通过循环给合集中每一个元素修改样式 var aDiv = document.getElementsByClassName('xxx'); for (var i = 0; i < aDiv.length; i++) { aDiv[i].style.border = "3px solid blue"; } ------------------------------------------------- //通过jQuery直接传入class //class选择器可以选择多个元素 $(".xxx").css("border", "3px solid red"); //$(".xxx").css()方法内部肯定是带了一个隐式的循环处理
|
标签选择器
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <div class="xxx"></div> <div class="xxx"></div> <div class="xxx"></div> ....
//通过原生方法处理 //获取到所有的节点标记名为div的元素 //给每一个div加上蓝色的边框 var aDiv = document.getElementsByTagName('div'); for (var i = 0; i < aDiv.length; i++) { aDiv[i].style.border = "3px solid blue"; } ------------------------------------ $("div").css("border", "3px solid red");
|
通配符选择器
如果要获取文档中所有的元素,通过document.getElementsByTagName()中传递”*”
1 2 3
| var elements1 = document.getElementsByTagName('*'); //jquery var elements2 = $("*");
|
各种选择器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| $('parent > child') //子选择器 直接子集 父子关系 $('parent xxx') //后代选择器 儿子 孙子 曾孙子 $('prev + next') //相邻兄弟选择器 选择紧邻在 prev元素后的 next元素 $('prev ~ siblings') //匹配prev元素后的 所有siblings元素
$(".div:first") $(".div:last") $(".div:even") $(".div:odd") $(".div:eq(2)") $(".div:gt(3)") $(".div:lt(4)")
... $('input:enabled') $('input:disabled') $('input:checked') $('option:selected')
|
this选择器
1 2 3 4 5 6 7 8
| var aaa = { name:"almost", getName:function(){ //this,就是aaa对象 return this.name; } } aaa.getName(); //almost
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var p1 = document.getElementById('test1') p1.addEventListener('click',function(){ // this === p1 //直接通过dom的方法改变颜色 this.style.color = "red"; },false);
...
$('#test2').click(function(){ //这里的this 是原生dom对象 需要转换为jquery对象才可以使用 //通过包装成jQuery对象改变颜色 $(this).css('color','blue'); })
|
属性与样式
设置属性
1 2
| //找到第一个input,通过attr设置属性value的值 $('input').attr('value','001')
|
获取属性
1
| $('input').attr('value')
|
通过function设置属性值
1 2 3
| $('input').attr('value',function(i, val){ return '通过function设置' + val })
|
删除属性
1
| $('input').removeAttr('aaa')
|