化大为小,化简为繁 ——简化代码,使得程序更加高效
主要代替繁琐的原生的JavaScript
var obj = document.getElementById("id");
var obj = $("id");
document.getElementById("id").style.display="none";
var obj = $("id").hide();
document.getElementById("id").style.width="200px";
var obj = $("id").css("width","200px");
window.onload = function(){};
$(document).ready(function(){});
版本一
$().ready(function(){});
版本二
$(function(){});
JavaScript
var obj = document.getElementById(“dom-id”);
jQuery
var obj = $(“#dom-id”);
返回的对象是jQuery对象,类似数组,每个元素都是引用DOM节点对象
• 不会返回undefined或null
• 不必在下一行判断if(div===undefined)
包含:基本选择器、多项选择器、层级选择器、属性选择器、过滤器、表单相关、查找和过滤
#id
概念:根据给定的id匹配一个元素 选中的是数组
优先级高,效率最高
$(document).ready(function(){
var div0 = $("#div0");
console.log(div0);
});
标签名
概念:根据给定的元素标签名匹配所有元素
$(this).index()确定第几个,运用隐式迭代
&(‘div’)[index]数组方式调用
效率相对差点,建议使用
$(document).ready(function(){
var divs = $("div");
console.log(divs);
});
.class
概念:根据给定的css类名匹配元素
可以用共同的class值选中多个元素,也可以对独特的class值选中
class和id的不同在于,id不可以重复,class可以重复,表现层用class,行为层用id
效率相对差点,建议使用
$(document).ready(function(){
var divs = $(".div");
console.log(divs);
});
匹配所有元素
行为层慎用
效率最差,不建议
$(document).ready(function(){
var divs = $("*");
console.log(divs);
});
$(“selector1,select2,selectN”);
将每一个选择器匹配到的元素合并后一起返回
可以指定任意多个选择器,并将匹配到的元素合并一个结果内
数组顺序会遵循html顺序,不会破坏原有的DOM结构
$(document).ready(function(){
var divs = $("#first,div,.second");
console.log(divs);
});
$(“anscestor descendant”)
在给定的祖先元素下匹配所有后代
$(function(){
var summaries = $("aside summary");
console.log(summaries);
});
$(“parent>child”)
在给定父元素下匹配所有的子元素 子选择器的效率相对较高
$(function(){
var summaries = $("aside>detail");
console.log(summaries);
});
$(“prev+next”)
匹配所有紧接在prev元素后的next元素
$(function(){
var summaries = $("summary+ul");
console.log(summaries);
});
$(“prev~siblings”)
匹配prev元素之后的所有的siblings元素
重点是必须是同一个层级;不常用
$(function(){
var summaries = $("summary~details");
console.log(summaries);
});
子选择器和直接子选择器用的相对较多
$(document).ready(function(){
var all = $("[class]");
console.log(all);
});
$(document).ready(function(){
var all = $("[class=tool]");
console.log(all);
});
$(document).ready(function(){
var all = $("[class!=tool]");
console.log(all);
});
$(document).ready(function(){
var all = $("[class^=tool]");
console.log(all);
});
$(document).ready(function(){
var all = $("[class$=vs]");
console.log(all);
});
$(document).ready(function(){
var all = $("[class*=vs]");
console.log(all);
});
$(document).ready(function(){
var all = $("[class][class*=lang][class$=y]");
console.log(all);
});
概念:不会单独使用,必须在现有的选择器基础上进行新一轮的筛选
$(function(){
var divs = $("details>p:first-child");
console.log(divs);
});
$(function(){
var divs = $("details>p:last-child");
console.log(divs);
});
$(function(){
var divs = $("details>p:nth-child(2)");
//这里的2是正常顺序数的2
console.log(divs);
});
$(function(){
var divs = $("details>p:nth-last-child(2)");
console.log(divs);
});
$(function(){
var divs = $("details>p:only-child");
console.log(divs);
});
$(function(){
var divs = $("details>p:first-of-type");
console.log(divs);
});
$(function(){
var divs = $("details>p:last-of-type");
console.log(divs);
});
$(function(){
var divs = $("details>p:nth-of-type(2)");
console.log(divs);
});
$(function(){
var divs = $("details>p:nth-last-of-type(2)");
console.log(divs);
});
$(function(){
var divs = $("details>p:only-of-type");
console.log(divs);
});
:nth-of-type(even|odd|formula)
$(function(){
var ps = $("p:nth-of-type(3n)");
console.log(ps);
var ps1 = $("p:nth-of-type(2n)");
console.log(ps1);
var ps2 = $("p:nth-of-type(2n+1)");
console.log(ps2);
});
• :input 可以选择input textarea select 和button
$(function(){
var inputs = $(":input");
console.log(inputs);
});
• :text 匹配所有得单行文本,和input[type=’text’]一样
$(function(){
var texts = $(":text");
console.log(texts);
});
• 其他得input得type:password/:radio/:checkbox/:image/:reset/:button/:file…
• :enabled – 匹配所有可用元素
$(function(){
var enabled = $(":enabled");
console.log(enabled);
});
• :disabled – 匹配所有得不可用元素
$(function(){
var disabled = $(":disabled");
console.log(disabled);
});
• :checked – 匹配所有选中得被选中得元素(复选框、单选框,select中得option)
$(function(){
var checked = $(":checked");
console.log(checked);
});
• :selected – 匹配所有选中得options元素
$(function(){
var selected = $(":selected");
console.log(selected);
});
注意:checked会选中selected,但selected不会选中checked
( expr | object | element )
概念:搜索所有与指定表达式匹配的元素
Find找出的不管是孩子还是孙子,只要满足表达式,都能找到;
$(function(){
var js = $("aside").find(".javascript");
console.log(js);
});
( [ expr ] )
概念:取得一个包含匹配元素集合中每一个元素的所有子元素的元素集合
注意:children表示找到孩子,孙子以下不算;
$(function(){
var js = $("aside").children("details");
console.log(js);
});
( [ expr ] )
概念:取得一个包含所有匹配元素的唯一父元素的集合;
$(function(){
var js_parent = js.parent();
console.log(js_parent);
});
( [ expr ] )
概念:取得一个包含匹配的元素集合中每一个紧邻的后面同辈元素的元素集合
$(function(){
var less = $(".less");
console.log(less);
var sass = less.next();
console.log(sass);
});
( [ expr ] )
概念:取得一个包含匹配的元素集合中每一个紧邻的前面同辈元素的元素集合
$(function(){
var less = $(".less");
console.log(less);
var css = less.prev();
console.log(css);
});
( index | -index )
概念:获得当前链式操作中第N个jQuery对象
• 如果eq传入的是正数,那么显示正数第几个;
• 如果eq参数传入的是负数,就显示倒数第几个;
eq是正数 显示正数第几个
$(function(){
var lis = $('li').eq(8);
console.log(lis);
});
eq是负数 显示倒数第几个
$(function(){
var lis = $('li').eq(-8);
console.log(lis);
});
( [ expr ] )
概念:取得一个包含匹配的元素集合中每一个元素的所有唯一同辈的元素集合
$(function(){
var php = $('.php');
console.log(php);
var lis = php.siblings();
console.log(lis);
});
( expr | object | element | fn )
概念:筛选出与指定表达式匹配的元素集合
$(function(){
var allLis = $('li');
console.log(allLis);
var python = allLis.filter('.python');
console.log(python);
});
$(function(){
var obj = allLis.filter(function(index){
console.log(index);
});
});
//index 索引值