jQuery选择器

核心重点:$符号是jquery的一个对象,jQ中所有的方法和属性都添加在这个对象中,$等价于jquery。

onload事件和ready的区别:
执行时机:onload事件时必须等页面完全加载完毕后才能执行,ready是当页面的节点加载完毕后就可以执行,比onload早一点。
添加个数:onload只能添加一个,多次添加执行最后一次覆盖掉前面的,ready事件可以添加多个,且互相之间不会覆盖。(onload事件与ready事件也不会覆盖);

注:addEventListener的方法添加多个重复事件,不会发生覆盖的情况。
  1. 简化写法:onload没有简化写法,ready事件可以简写为:$(function(){})

取名规则:如果是通过jQ获取到的节点对象,需要在节点前加上$符号。通过DOM操作获取到的节点

DOM节点与jQ对象不能混用对方的属性及方法,如果想用必须先转换类型。
jQ与DOM之间的转换:

jquery==>>DOM
方法1:利用数组的下标形式获?。?var $div2 = $('#div1');

var divDom = $div2[0];

divDom.style.background = 'red';

方法2:使用get获取函数

var divDom2 = $div2.get(0);

console.log(divDom2);

DOM==>>jQuery
在DOM节点变量名外包裹上$();
var $divJq = $(div1);

console.log($divJq);

工具类:

<script type="text/javascript">

 //工具类

 console.log($.type([])); // Array

 console.log($.type({})); //object

 console.log($.type(new Date())); //date

 </script>

遍历对象:

//遍历对象 

 $.each([10,20,30],function(index,value){

 console.log(index,value);

 });
 $.each({name:"张三",age:18},function(key,value){

 console.log(key,value);

 });

each:

//each()方法:遍历获取到每一个节点元素

 $('li').each(function(){

//                  console.log($(this).text());

 //拼接内容

 var $text = $(this).text()+'<span style="color:red">促销</span>'

 $(this).html($text);

 $(this).addClass('p')

 })

选择器:

id ,类 ,标签

<script type="text/javascript">

 //使用ID选择器
 var div1 = $('#div1');
 console.log(div1);

 使用class选择器
 var div2 = $('.div2');
 console.log(div2);

 使用标签选择器
 var div3 = $('div');
 console.log(div3);

 </script>

通配符选择器,群组选择器,后代选择器

   //通配符选择器
 $('*').css('margin','10px');

 //群组选择器
 var $s =$('#div1,.p,#div2');
 console.log($s);
 $s.css('background','blue');

 //后代选择器
 $('#div1 p').css('color','yellow');
 var $sum = $('#div1 p');
 console.log($sum);
 $sum[0].style.color = 'red';

直接子选择器,统配符选择器和子选择器的配合;

//直接子选择器
 var ps2 = $('section > p');
 console.log(ps2);

//通配符选择器与子选择器的配合使用
var $ps = $('#div > *');
console,log($ps);

//找到id为div下的所有子元素

jQuery高级选择器:

/*
 find() $(".container".find('h2'));     查找子集中的h2
 children() $('article').childred();    获取直接所有子元素
 parent()   $('header').parent();       获取直接父级元素
 parents()  $('header').parents();      获取所有父级元素,直到html标签位置
 next()     $('header').next();         获取下一个兄弟元素
 nextAll()  $('header').nextAll();      获取下面所有兄弟元素
 prev()     $('header').prev();         获取上一个兄弟元素
 prevAll()  $('header').prevAll();      获取上面所有兄弟元素
 siblings() $('header').siblings();     获取所有兄弟元素
 */

详解:

 <script type="text/javascript">
 $(document).ready(function(){
 //后代选择器及find()
 //find():是jquery对象的方法 必须有参数,否则无法返回对应的后代标签。后代选择器
 $('p span').css('color','red');
 $('p').find('span').css('background','blueviolet');
 var $span = $('p').find('span');
 console.log($span);

 //子选择器
 var $two = $('#div1>.div2');
 console.log($two);
 //全部的子标签
 var $c = $('#div1').children();
 console.log($c);
 var $d = $('#div1').children('.div8'); 
 console.log($d);
 //children 如果没有参数则获取的是该标签的所有子元素,如果有参数 则获取该参数,如果参数不存在则返回空; 
 var $n = $('.div22+div')
 console.log($n);
 //next选择器(兄弟选择器):选中指定标签后的另一个兄弟标签,如果不是
 var $nn = $('.div22').next();
 console.log($nn);
 //next方法:选中某个标签后的紧邻的另一个标签,这个方法参数可以为空,选中的是跟在他后面的标签。
 //如果参数不为空,当标签后跟有指定的标签,则返回这个标签,如果不是指定的标签则返回空。
//nextAll(~) 选择器:如果指定标签后跟有并不是指定的标签,则会把不是指定的标签排除,寻找想要的标签。
 var $d1 = $('.div222 ~ div');
 console.log($d1);
 var $d2 = $('.div222').nextAll();
 console.log($d2);
 //nextAll() :如果没有参数,则获取到当前指定标签后的所有的标签,如果有参数则获取指定的标签。排除不相关的标签

 //prev
 var $b = $('#div3').prev('div');
 console.log($b);
 //prev():当方法没有参数的时候 获取的是当前标签的前一个标签,如果有参数,当参数是当前元素的前一个元素,则返回参数对应的标签,如果参数不是当前元素的前一个标签则返回空;
 //prevAll()如果没有参数,则获取到当前指定标签前的所有兄弟的标签,如果有参数则获取指定的兄弟标签。排除不相关的标签
 var $All = $('#div3').prevAll('a');
 var one = $All[2];
 console.log($All);
 console.log(one); 
 var $ss = $('#div3').siblings("a");
 console.log($ss);
 //siblings();如果没有参数,则获取到的是与指定标签同级的所有兄弟标签。如果有参数,则获取到指定标签的所有兄弟参数标签。
 });
 </script>

属性选择器:

 <script type="text/javascript">
 $(document).ready(function(){
 //属性选择器
 //得到id属性的所有标签
 var one = $('[id]');
 console.log(one);
 //得到id为div的标签
 var two = $('[id=div]')
 console.log(two);
 //不等于某个属性 , 得到的是出不等于的标签以外的所有的标签
 var three = $('[id!=div]')
 console.log(three);
 //以d开头的所有标签
 var four = $('[id^=d]')
 console.log(four);
 //以div为结尾的所有标签
 var five = $('[id$=div]');
 console.log(five);
 })
 </script>

过滤选择器:

<script type="text/javascript">
 $(document).ready(function(){
 //得到第一个元素和最后一个元素
//  var $first = $('*:first'); //html
//  var $first = $('#div1:last'); //无论是first还是last 都是本身 因为 寻找的必须是 标签元素不能是id或者class
 var $first = $('#div1 div:first'); // class为d1 的div
 var $last = $('#div1 div:last'); // class 为d4的div
 console.log($first);
 console.log($last);
 //得到偶数和奇数
 var $even = $('*:even'); //全部标签排序(包括子标签及父标签一起)下标为偶数的。从0开始
 var $odd = $('*:odd'); //下标为奇数
 console.log($even);
 console.log($odd);
 //反选 not()
//  var $not = $(':not(#div1.d2)'); //选取除了#div1.d2以外的所有标签 
 var $not = $('div:not(#div1.d2)');// 在div中获取除了#div1.d2以外的所有标签;
 console.log($not);
 //eq ,gt,lt ,header n代表下标数字
 var $eq = $('*:eq(n)'); //*(可改变 指定范围)从html开始获取下标为n的标签 n可以使负数 倒数第n个
 console.log($eq);
 var $gt = $('*:gt(n)');//*(可改变 指定范围)从html开始会下标为n以后所有的标签(父元素及子元素)
 console.log($gt); 
 var $lt = $("*:lt(n)"); //*(可改变 指定范围)指的是下标为n上面所有的标签
 console.log($lt);
 var $head = $('*:header');//*(可改变 指定范围)获取*所有的h标签
 console.log($head);
 //nth-child
 var $one = $('#div1 div:nth-child(3)'); // 获取指定下标的元素 下标从1开始;
 console.log($one); 
 var $oneo = $(':nth-child(1)'); //所有父元素中的第一个子元素。。。。。
 console.log($oneo);
 var $two = $(" :nth-child(2n)"); // 从head开始获取下标为2的倍数的标签
 console.log($two);
 var $three = $('*:nth-child(even)');//从head开始获取下标为偶数的标签
 console.log($three);
 var $four = $(':nth-child(odd)'); // 从head开始获取下标为奇数的标签
 console.log($four);
 })
 </script>

内容选择器,可见选择器,表单选择器,nth-child,

/*
 $('div:eq(1)');//下标为1的div,下标从0开始,可以写负数,负数为倒数第N个
 $('div:eq(-1)');
 //内容选择器
 $('div:contains("big")');  //找到内容中带有big的标签
 //可见性选择器
 $(div:visible);        //找到可见的div
 $('div:hidden');   //找到隐藏的div (dis play:none/hidden='hidden')
 //表单选择器
 $(':input');       获取所有的Input
 $(':text');            获取所有输入框
 //子元素选择器
 $("ul li:first-child");        获取第一个li
 $('ul li:last-child');     获取最后一个li
 $('ul li:nth-child(2n+1)');        获取第2n+1个    可以填写(n,even , 2n+1,odd);奇数偶数
 */
最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容