zoukankan      html  css  js  c++  java
  • jquery对象、js全局变量等tips

    1、一个DOM对象和Jquery对象,即使是作为一个数组,其元素相同,但其属性是不一样的。DOM Object!=$(''); 

    转换的办法

    Jquery=>DOM :取jQuery对象数组的第一个

    var $jQueryObj=$('#id1');
    var domObj=$jQueryObj[0]; //或$jQueryObj.get(0)

    DOM=>jQuery 这个比较简单,直接加上$符号就可以了

    var domObj=document.getElementById('#id1');
    var $jQueryObj=$(dom);

    2、window.onload和$(document).ready() 的区别

      1)window.onload会在页面加载完所有元素才执行,而$(document).ready()会在Dom就绪就加载。如果直接调用一个函数,那么会最早加载。

       window.onload = function () {
            alert('window.onload');            //最晚,加载完全部元素,包括图片后才执行
        };
        $(function () {
            alert('document.ready');             //其次,加载完DOM元素,比如表格的框架后,开始执行
        });
    
        function myFunction() {
            alert("myFunction!");                //最早,加载完母板后就执行
        }
    
        myFunction();

       2)window.onload若多次注册事件,后面的会覆盖前面的,而$(document).ready(不会覆盖,而是依次注册。

    3、javascript的全局变量

    全局变量在子函数中有效,如果在子函数中使用var 来改变了值,该变量的值在函数外不改变,否则,如不用var,则其变量的作用域会解析到外面。

    原因在于“作用域链”这个概念。所谓作用域链,就是指函数作用范围的链条。在子函数中使用var声明变量时,链条就停止了。同样,使用function(variable){}时,作用域链也停止。 

    例如:

    var s1=1;
    var s2=1;
    var s3=1;
    function myFunction(){
    var s1=2;
    s2=2;
    }
    function myFunction2(s3){
    s3=2;
    }
    alert(s1);   //此时结果为1,s1的作用域链碰见var 即停止
    alert(s2);   //此时结果为2
    alert(s3);   //此时结果为2,s3的作用域链碰见将自己作为参数的函数也停止

    4、在用jQuery的.each函数遍历一个jQuey对象时,有一点需要注意,在回调函数中,this是一个DOM对象,而不是jQuery对象

      $('input').each(function(){
    
      alert(this.value);  //注意:this是一个DOM对象,而不是jQuery对象
    
    });

    因此,this没有val()方法,而是有value属性。

  • 相关阅读:
    线性筛法(欧拉筛法)求素数
    07 day 2
    07 DAY 1
    二模 06day2
    刷水题记(2)
    The Perfect Stall (incomplete)
    离散化的应用:矩形覆盖问题
    刷水题记(1)
    发个题目坑 二模03day1
    hdu 5996 dingyeye loves stone(博弈)
  • 原文地址:https://www.cnblogs.com/Benjamin/p/2724968.html
Copyright © 2011-2022 走看看