关于JQuery的理解和使用方法!
1.为什么JQuery要发明选择器?
回顾DOM操作中我们使用的代码
// 按ID查找: var a = document.getElementById('dom-id'); // 按tag查找: var divs = document.getElementsByTagName('div'); // 查找<p class="red">: var ps = document.getElementsByTagName('p'); // 过滤出class="red": // TODO: // 查找<table class="green">里面的所有<tr>: var table = ... for (var i=0; i<table.children; i++) { // TODO: 过滤出<tr> }
这些代码比较繁琐,且在层级关系中,如果要使用循环,则需要递归查找所有子节点。
JQuery的选择器此时就能帮助我们快速找到一个或多个DOM节点。
1.按ID查找:
例如:查找<div id="abc">
var div =$('#abc');
注意:此时这里返回的是JQuery对象。
什么是JQuery对象呢??JQuery对象类似数组,他的每一个元素都是一个引用了DOM节点的对象。
若上面的例子,id 为 abc 的 div 存在,返回的JQuery对象如下所示:
[<div id="abc">...</div>]
若不存在,则返回的JQuery对象如下:
[ ]
2.可以使用$符号实现DOM对象和JQuery对象的互相转换。
3.按tag查找、按class查找,按属性查找。
tag标签查找和class查找跟id查找有点类似,这里我就不做过多赘述。
我们主要讲讲关于属性查找。
tag 和class 查找的例子如下:
//这是tag查找 var ps = $('p'); // 返回所有<p>节点 ps.length; // 数一数页面有多少个<p>节点 //这是class 查找 var a = $('.red.green'); // 注意没有空格! // 符合条件的节点: // <div class="red green">...</div> // <div class="blue green red">...</div>
按属性查找
var email =$('[name=email]'); //找出<??? name = 'email"> //当属性的值包含空格等特殊字符时,需要用双引号括起来。 //例如下面的例子 var a =$('[items ="A B"]');
按属性查找还可以使用前缀查找或后缀查找:
//找出所有name属性值以icon开头的 var icons =$('[name ^= icon]'); //找出所有name属性值以with结尾的 var names = $('[name $=with]');
//组合查找代码如下: var emailInput = $('input[name=email]'); // 不会找出<div name="email"> //tag和class来组合 var tr = $('tr.red'); // 找出<tr class="red ...">...</tr>
//多项选择器 $('p,div'); // 把<p>和<div>都选出来 $('p.red,p.green'); // 把<p class="red">和<p class="green">都选出来
努力地向月光下的影子——骇客靠拢!!!
黎明之花,待时绽放