Jquery 的$疑问?既然$可以当函数名用如 $("div"),说明 $是一个函数...

发布网友

我来回答

3个回答

热心网友

// 你好,我模拟一下 $ 的构造,给你展示一下吧
<script type="text/javascript">
    // 建立 index.html ,其中还有有个空的 div,然后把这一段 srcipt 放到 html 结束之后
    // 由于 javascript 是弱类型的语言,所以 var 可以代表很多的东西
    // 此处 var $ 的 var 我们可以看成是 C# 或者 Java 的一个类,以下用 C# 为例
    // public Class $Class 
    // {
    //      public $Class(){  }    -- 这个是无参数构造函数
    //      public $Class(string mystr){  }   -- 这个是有参数的构造函数
    //      public string type { get; set; }
    //      public void post()
    //      {
    //          return "alert('我是post方法')";
    //      }
    // }
    //
    // var $ = function (mystr) {  }  我们看做是 
    // $Class $ = new $Class(mystr);  的构造函数的实例化
    var $ = function(mystr) {
        // 如果构造函数输入的是 div,则返回所有的 div,否则返回 "";
        if (mystr == "div") {
            return document.getElementsByTagName("div");
        } else {
            return "";
        }
    };
    // 这里的 $.type = ""  表示类 $ 中有一个 type 的字符串
    $.type = "";
    // 这里的 $.post = function(){}   表示类 $ 中有一个 post 的 function(){} ,function(){} 代表方法
    $.post = function() {
        alert("我是类$的post方法");
    }
    
    // 初始化开始加载
    window.onload = function() {
        // 这里开始调用 $("");
        var div = $("div");
        // 如果是 $("div"); 则文中有两个 div ,应该是 alert 2
        alert(div.length);
        // 如果是其他的,则返回 "",应该是 alert ""
        var div2 = $("label");
        alert(div2);
        // 然后我们调用一下 $.post(); 方法
        $.post();
    }
</script>

热心网友

你好!!

$("div") 返回的是包含页面所有div元素的jQuery对象;
$.post() 表示的是调用jQuery对象的post()方法;

你可以试着这样理解:

$("div")--->> jQuery对象的属性,表示为返回元素tag为div的jQuery对象,即$后面的选择器相当于设置属性值;
$.post()--->> jQuery对象的方法;

热心网友

函数也是对象,一切皆为对象。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com