JQuery

Posted CafeMing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery相关的知识,希望对你有一定的参考价值。

一、JQuery中的window.onload=function(){}
   1.  $(function(){
         })
    2. $(document).ready(function(){
         })
    3.$().ready(function(){
       })
       以上三种方法,在页面中可以同时写
二、jquery中获取元素
      原生js获取方法     var xxx=docuemnt.getElementById(\'\'); 等
                                    
       JQ中获取元素的方法  $(selector);  
        selector这个方法和原生的js选择器一样
       JQ中获取到的元素都是一个集合。 所以可以用 length判断是否获取元素成功
  1. $(function(){
  2. console.log($(\'input\')); //这里获取到的是两个input
  3. console.log($(\'input\')[0]); //这个获取到的是第一个input
  4. console.log($(\'#box\'));
  5. console.log($(\'span\',\'#div1\')); //从div1身上去获取span标签(注意顺序)
  6. console.log($(\'li\',$(\'.list\'))); //从div1身上去获取span标签(注意顺序)
  7. console.log($(\'.list li\')); //从div1身上去获取span标签
  8. console.log($(\'.list span\')); //如果是一个获取不到的元素,那它不会报错。如果要做判断的话,可以判断它的length属性 0的话就代表获取不到
  9. //var div3=$(\'#div2\');
  10. var div2=document.getElementById("div2"); //用原生js获取到的元素不能使用jquery里的方法。如果想用的话,那就把原生js获取到的元素转成jquery的形式
  11. $(div2).css(\'background\',\'red\'); //把原生js的对象包装成jquery的对象
  12. });
  13. <input type="button" value="按钮" />
  14. <input type="button" value="按钮" />
  15. <div id="box">123</div>
  16. <div id="div1">
  17. <span>kaivon</span>
  18. </div>
  19. <ul class="list">
  20. <li>kaivon1</li>
  21. </ul>
  22. <div id="div2">kaivon3</div>
  
             * get(index)        把jquery对象转成原生对象  
             *         index        是元素的索引值  (一定要写)
             * 
             * 原生对象转jquery对象用$
             * jquery转原生对象用get(index);
  1. $(function(){
  2. console.log($(\'#div1\').html()); //kaivon
  3. console.log($(\'#div1\').innerHTML); //undefined
  4. console.log($(\'#div1\').get(0).innerHTML); //kaivon
  5. })
  6. <div id="div1">kaivon</div>


三、JQ中的事件
 
             * jquery里的事件(没有on)
             *     语法
             *         $(元素).click(callBack);
            另一种添加事件的方法  
                   $(元素)on(\'click mousemove\',callback);
             jquery中移除事件的方法
                       $(元素).off()      注意:这个移除是将元素身上的所有事件都移除掉
  1. $(function(){
  2. $(\'#btn\').click(function(){
  3. //alert(1);
  4. console.log(this); //原生的this一样是指向触发事件的对象
  5. console.log($(this)); //指向jquery的对象
  6. });
  7. $(\'#box\').mouseover(function(){
  8. $(this).css(\'background\',\'green\');
  9. //不能写成 this.css(\'background\',\'green\');
  10. });
  11. });
  12. <input type="button" id="btn" value="按钮" />
  13. <div id="box"></div>

四、JQ中样式设置与value值、属性值、数据
   1.css
             * css()            关于样式的一些操作
             *     一个参数        获取属性的值
             *         参数为一个对象的话,表示设置属性,可以同时设置多个属性的值
             *     两个参数        设置属性的值
             *         第一个参数是属性名,第二个参数为属性名对应的值(不带单位也是可以的)
    2.value
             * 表单的value值
             *     val()            获取表单对应的value值
             *     val(values)        设置表单的value值
  1. $(function(){
  2. console.log($(\'#box\').css(\'width\')); //100px 获取属性的值
  3. $(\'#btn\').click(function(){
  4. /*$(\'#box\').css(\'background\',\'green\');
  5. $(\'#box\').css(\'width\',200);
  6. $(\'#box\').css(\'height\',200); */
  7. $(\'#box\').css({width:200,height:200,background:\'green\'});
  8. });
  9. console.log($(\'#btn\').val()); //按钮
  10. $(\'#btn\').val(\'kaivon\'); //有参数的话就是设置value值
  11. });
  12. <input type="button" id="btn" value="按钮" />
  13. <div id="box"></div>
    3.attr
             * attr()            关于标签属性的操作
             *     一个参数            获取元素的某个属性
             *         参数的值就是属性名字
             *     两个参数            设置元素的某个属性
             *         第一个参数为属性名字,第二个参数为属性要设置成的值
    4.date
             * data()        给标签添加数据
             *         有参数的话,是添加数据(用对象的形式去表示)
             *         没参数的话,是获取数据
  1. $(function(){
  2. console.log($(\'p\').attr(\'class\')); //con
  3. $(\'p\').attr(\'class\',\'neirong\');
  4. $(\'input\').attr(\'value\',\'kaivon\'); //这种方法这样写的话与val()这个方法的效果是一样的
  5. $(\'input\').attr(\'name\',123); //可以添加自定义属性
  6. console.log($(\'input\').attr(\'name\')); //123
  7. $(\'p\').data({\'name\':\'kaivon\',\'age\':18});
  8. console.log($(\'p\').data());
  9. });
  10. <p class="con">kaivonkaivon</p>
  11. <input type="button" value="按钮" />
            结合css.  attr 例子
  1. $(function(){
  2. $(\'div\').attr(\'on\',\'false\');
  3. $(\'input\').click(function(){
  4. if($(\'div\').attr(\'on\')==\'false\'){
  5. $(\'div\').css({width:200,height:200,background:\'green\'});
  6. $(\'div\').attr(\'on\',\'true\');
  7. }else{
  8. $(\'div\').css({width:100,height:100,background:\'red\'});
  9. $(\'div\').attr(\'on\',\'false\');
  10. }
  11. });
  12. });
  13. <input type="button" value="按钮"/>
  14. <div></div>
五 、JQ中的innerHTML 
             * html()        取元素里的内容,与js中的innerHTML的效果是一样的
             * text()        取元素里的文字,不取标签
  1. $(function(){
  2. console.log($(\'div\').html()); //今天<span>是个</span>好的<span>日子</span>
  3. console.log($(\'div\').text()); //今天是个好的日子
  4. $(\'div\').html(\'<span>dasdasdas</span>\');
  5. console.log($(\'div\').html()); //<span>dasdasdas</span>
  6. console.log($(\'div\').text()); //dasdasdas
  7. })
  8. <div>今天<span>是个</span>好的<span>日子</span></div>
六、JQ中的链式操作
    一个元素的连续操作
  1. $(\'div\').css({width:100,height:100,background:\'red\'}).html(\'<span>kaivon</span>\').click(function(){
  2. $(this).css(\'color\',\'blue\');
  3. });
七、JQ中的节点操作
 1.找父节点
         parent()           找到元素的第一层父节点
        parents()            找元素的所有父节点,一直找到html
  1. $(function(){
  2. $(\'#div2\').parents().css(\'background\',\'red\');
  3. })
  4. <div id="div1">div1
  5. <div id="div2">div2</div>
  6. </div>
2.找最近的节点
    closest(selector)         从自身开始,一步一步往外找,找到对应的那一个后便会停止 (selector不能是空)
  1. $(function(){
  2. $(\'#div2\').closest(\'.div1\').css(\'border\',\'1px solid #f00\');
  3. $(\'span\').click(function(){
  4. $(this).closest(\'li\').css(\'background\',\'red\');
  5. });
  6. })
  7. <div class="div1">
  8. <div class="div1">div1
  9. <div id="div2">div2</div>
  10. </div>
  11. </div>
  12. <ul>
  13. <li>12121212<span>span</span></li>
  14. <li>222222<span>span</span></li>
  15. <li>333333<span>span</span></li>
  16. <li>444444<span>span</span></li>
  17. </ul>
3.获取节点
             * 获取节点   (主语不一定是父级)从自身去找,而不是相对父级,   
             *     .first()                获取主语第一个子节点   
             *     .last()                    获取主语最后一个子节点
             *     .slice(start,end)        截取部分子节点
             *         start                起始位置   (从0开始)
             *         end                    结束位置,不包含结束位置,第二个参数不写的话,截到最后一位
  1. $(function(){
  2. //$(\'li\').first().css(\'background\',\'red\');
  3. //$(\'li\').last().css(\'background\',\'green\');
  4. $(\'li\').slice(2,4).css(\'background\',\'yellow\');
  5. $(\'li\').slice(3).css(\'background\',\'blue\');
  6. $(\'ul\').first().css(\'background\',\'red\'); //因为一个ul,
  7. $(\'ul\').slice(1,2).css(\'color\',\'yellow\'); //这样是错误的,因为只有一个ul
  8. });
  9. <ul>
  10. <li>red</li>
  11. <li>green</li>
  12. <li>blue</li>
  13. <li>yellow</li>
  14. <li>pink</li>
  15. </ul>
        
             * .children    (selector)        获取到元素里的第一层子节点  (局限在第一层)
             *         参数如果没有的话,获取到父级下的所有子节点
             *         有参数的话,参数是一个选择器,找到对应选择器的节点
             * .find()                    获取元素里的所有节点    (不局限在第一层)
  1. $(function(){
  2. $(\'ul\').children().css(\'color\',\'red\'); //获取到所有的第一层子节点
  3. $(\'ul\').children(\'.blue\').css(\'color\',\'blue\'); //获取到第一层子节点 中class为blue的子节点
  4. $(\'ul\').find(\'li\').css(\'background\',\'pink\'); //获取到所有的li节点
  5. $(\'ul\').find(\'span\').css(\'background\',\'black\'); //获取到span标签
  6. })
  7. <ul>
  8. <li>red</li>
  9. <li>green</li>
  10. <li class="blue">blue</li>
  11. <li>yellow</li>
  12. <li>pink<span>black</span></li>
  13. </ul>
4.创建节点以及添加节点
             * 父级.append(要添加的元素)            把要添加的元素添加到父级的最后面
             * 父级.prepend(要添加的元素)            把要添加的元素添加到父级的最前面
             * 元素.before(要添加的元素)            把要添加的元素添加到一个指定的元素的前面
             * 元素.after(要添加的元素)            把要添加的元素添加到一个指定的元素的后面
  1. $(function(){
  2. //原生js创建节点方法
  3. // var ul=docuemnt.getElementById(\'#list\');
  4. /* var li1=document.createElement(\'li\');
  5. li1.innerHTML=\'red\';*/
  6. //原生js添加节点
  7. //ul.appendChild(li1);
  8. //JQ创建节点
  9. var li1=$(\'<li>red</li>\')
  10. //JQ添加节点
  11. $(\'#list\').append(li1);
  12. var div3=$(\'<div>blue</div>\');
  13. var div4=$(\'<div>yellow</div>\');
  14. $(\'body\').append(div3); //把div3添加到html中
  15. $(\'#list\').before(div3); //把div3放在了ul前面
  16. $(\'#list\').after(div3); //把div3放在了ul的后面
  17. });
  18. <ul id="list"></ul>
  另外一种方法
             * 要添加的元素.appendTo(父级)            把要添加的元素添加到父级的最后面
             * 要添加的元素.prependTo(父级)            把要添加的元素添加到父级的最前面
             * 要添加的元素.insertBefore(元素)        把要添加的元素添加到一个指定的元素的前面
             * 要添加的元素.insertAfter(元素)            把要添加的元素添加到一个指定的元素的后面

5.删除节点元素以及克隆节点
             * remove()        删除元素
             *     元素.remove();
             * 
             * clone(blooen)        克隆元素
             *     参数默认为空,表示只复制元素,不复制事件。如果参数为true,表示元素与事件都会被复制
 
  1. $(function(){
  2. $(\'li\').first().remove(); //<li>red</li>被移除
  3. $(\'span\').click(function(){
  4. console.log(1);
  5. });
  6. var newSpan=$(\'span\').clone(true);
  7. $(\'div\').append(newSpan);
  8. });
  9. <ul>
  10. <li>red</li>
  11. <li>green</li>
  12. <li>blue</li>
  13. </ul>
  14. <span>kaivon</span>
  15. <div></div>
6.上一个兄弟节点和下一个兄弟节点
             * 上一个兄弟节点
             *     .prev()
             * 
             * 下一个兄弟节点
             *     .next()
  1. $(function(){
  2. //上移功能
  3. $(\'input[value="上移"]\').click(function(){
  4. var curLi=$(this).parent();
  5. var prevLi=curLi.prev();
  6. //因为这个是JQ的对象,所以判断上一个节点是否存在需要用length判断
  7. if(prevLi.length){
  8. prevLi.before(curLi);
  9. }else{
  10. alert(\'到头了\');
  11. }
  12. });
  13. //下移功能
  14. $(\'input[value="下移"]\').click(function(){
  15. var curLi=$(this).closest(\'li\');
  16. var nextLi=curLi.next();
  17. if(nextLi.length){
  18. nextLi.after(curLi);
  19. }else{
  20. alert(\'到头了\');
  21. }
  22. });
  23. });
  24. <ul>
  25. <li>1、<input type="button" value="上移"/><input type="button" value="下移"/></li>
  26. <li>2、<input type="button" value="上移"/><input type="button" value="下移"/></li>
  27. <li>3、<input type="button" value="上移"/><input type="button" value="下移"/></li>
  28. <li>4、<input type="button" value="上移"/><input type="button" value="下移"/></li>
  29. <li>5、<input type="button" value="上移"/><input type="button" value="下移"/></li>
  30. </ul>
七、JQ中索引值
             * index()        
             *     没有参数
             *         第一个元素(获取到的这个元素,因为jquery获取到的是一组数据)在兄弟元素中的排行
             *     有参数
             *         代表前面的元素在参数的标签(所有标签,不分兄弟)里排行第几
  1. $(function(){
  2. console.log($(\'#div1\').index()); //0
  3. console.log($(\'div\').index()); //1
  4. console.log($(\'span\').index()); //4
  5. console.log($(\'#s1\').index(\'span\')); //2
  6. console.log($(\'#s2\').index(\'span\')); //5
  7. console.log($(\'.box\').index(\'span\')); //-1 表示没有找到
  8. });
  9. <p>p</p>
  10. <div>div</div>
  11. <div>div</div>
  12. <!--<div id="div1"></div>-->
  13. <div>
  14. <div id="div1"></div>
  15. </div>
  16. <span></span>
  17. <span></span>
  18. <div class="box">
  19. <span id="s1">s1</span>
  20. <span></span>
  21. <span></span>
  22. </div>
  23. <div><span id="s2">s2</span></div>
             * 通过索引找到对应的元素(因为JQ中获取的对象是数组)
             *     eq(index)            参数为下标
              JS中通过索引找到对应元素 xxx[index]
            
  1. $(function(){
  2. $(\'#box input\').click(function(){
  3. $(\'#box input\').attr(\'class\',\'\');
  4. $(this).attr(\'class\',\'active\');
  5. $(\'#box div\').attr(\'style\',\'display:none\');
  6. $(\'#box div\').eq($(this).index()).attr(\'style\',\'display: block;\');
  7. })
  8. })
  9. <div id="box">
  10. <input class="active" type="button" value="按钮一" />
  11. <input type="button" value="按钮二" />
  12. <input type=以上是关于JQuery的主要内容,如果未能解决你的问题,请参考以下文章

    markdown 在WordPress中使用jQuery代码片段

    使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

    很实用的JQuery代码片段(转)

    几个有用的JavaScript/jQuery代码片段(转)

    几个非常实用的JQuery代码片段

    高效Web开发的10个jQuery代码片段