最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jquery中為什么能用$操作

 更新時間:2019年06月18日 09:59:04   作者:小盆友灬  
這篇文章主要介紹了jquery中為什么能用$操作,jquery直接用$來獲取dom節(jié)點的方式也非常便捷方便,那么他是怎么實現(xiàn)的呢?,需要的朋友可以參考下

前言

jq對dom節(jié)點的操作相信大家都很熟悉,

$("input").val("value");

直接用$來獲取dom節(jié)點的方式也非常便捷方便,那么他是怎么實現(xiàn)的呢?

猜想

在沒看源碼之前,我的猜想是這樣的

function Dom(selector){
this.dom = document.querySelector(selector);
this.val = function (content) {
if(content){
this.dom.value = content
}else{
return this.dom.value;
}
}
}
function $(selector) {
return new Dom(selector);
}
$("input").val("value")

$()是一個function,這個function會返回一個new Dom的對象,這個new Dom的對象里寫一些方法,就達(dá)到j(luò)q的這樣效果了。

實際

之后看了jq源碼的寫法,果然不同凡響……

(function(window, undefined) {
jQuery = function(selector, context) {
return new jQuery.fn.init(selector, context);
}
jQuery.fn = jQuery.prototype = {
init: function(selector, context) {
this.dom = document.querySelector(selector)
},
val: function(content) {
if(content) {
this.dom.value = content
} else {
return this.dom.value;
}
}
}
jQuery.fn.init.prototype = jQuery.fn;
window.$ = jQuery;
})(window);
$("input").val("value")

首先,將jq的代碼寫在一個匿名函數(shù)里,這樣避免了重復(fù)命名對變量的影響,通過window.$ = jQuery;把$掛在windo下,實現(xiàn)域外使用$的操作。

其次,調(diào)用jQuery這個方法,return 一個jQuery.fn.init()的對象,jQuery.fn.init()本質(zhì)上是一個構(gòu)造函數(shù),這樣$("input")的時候其實相當(dāng)于已經(jīng)new了一個對象。

但是怎么使用.val()方法呢,現(xiàn)在new出來的對象只有一個dom屬性(當(dāng)然在我這個例子里是這樣的)。

所以,最后jQuery.fn.init.prototype = jQuery.fn;這句話格外關(guān)鍵,這句讓jQuery.fn.init也能使用val()這個方法,當(dāng)然也能使用init方法了,

所以$("input").init("select").val("value")這種寫法也是正確的,而這種寫法的效果就是改變了select的值而沒有改變input的值。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • jquery 插件學(xué)習(xí)(六)

    jquery 插件學(xué)習(xí)(六)

    把其中的參數(shù)默認(rèn)值作為$.fn.color對象的屬性單獨進行設(shè)計,然后借助jquery.extend方法,覆蓋原來的參數(shù)選項即可
    2012-08-08
  • javascript 驗證日期的函數(shù)

    javascript 驗證日期的函數(shù)

    最近這個項目中有幾個需要錄入日期的地方,開始由于沒有對這些地方進行有效性驗證,結(jié)果用戶錄入的日期有好多非法日期,諸如什么2007-2-29,還有2005-2-30等錯誤日期
    2010-03-03
  • jQuery解析XML 詳解及方法總結(jié)

    jQuery解析XML 詳解及方法總結(jié)

    這篇文章主要介紹了jQuery解析XML 實例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 基于jQuery實現(xiàn)滾動刷新效果

    基于jQuery實現(xiàn)滾動刷新效果

    這篇文章主要為大家詳細(xì)介紹了基于jQuery實現(xiàn)滾動刷新效果,使用Ajax獲取后臺數(shù)據(jù)更新前端頁面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • jquery實現(xiàn)選項卡切換代碼實例

    jquery實現(xiàn)選項卡切換代碼實例

    這篇文章主要介紹了jquery實現(xiàn)選項卡切換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 基于jquery的固定表頭和列頭的代碼

    基于jquery的固定表頭和列頭的代碼

    基于jquery的固定表頭和列頭的代碼,需要的朋友可以參考下
    2012-05-05
  • jQuery實現(xiàn)點擊滾動到指定元素上的方法分析

    jQuery實現(xiàn)點擊滾動到指定元素上的方法分析

    這篇文章主要介紹了jQuery實現(xiàn)點擊滾動到指定元素上的方法,結(jié)合實例形式分析了jQuery響應(yīng)鼠標(biāo)事件動態(tài)操作頁面元素屬性的相關(guān)相關(guān)使用技巧,需要的朋友可以參考下
    2020-03-03
  • jqgrid 簡單學(xué)習(xí)筆記

    jqgrid 簡單學(xué)習(xí)筆記

    JqGrid是JQuery的表格插件,功能非常強大,基本上能想到,它都能實現(xiàn)。下面是一個例子,希望能通過這個示例,能讓你了解下JqGrid。
    2011-05-05
  • jquery.alert 彈出式復(fù)選框?qū)崿F(xiàn)代碼

    jquery.alert 彈出式復(fù)選框?qū)崿F(xiàn)代碼

    jquery alert 彈出式 復(fù)選框,需要的朋友可以參考下,代碼有點亂。
    2009-06-06
  • 淺談jQuery中的事件

    淺談jQuery中的事件

    本文給大家分享的是個人關(guān)于jQuery中事件的理解,主要向大家介紹了jQuery中事件的綁定,合成、以及事件冒泡、阻止事件等內(nèi)容,希望大家能夠喜歡。
    2015-03-03

最新評論

乡宁县| 安龙县| 滦平县| 乌审旗| 霍城县| 新余市| 华宁县| 响水县| 万山特区| 梓潼县| 平顺县| 岢岚县| 连城县| 无为县| 鸡东县| 阳曲县| 阜新市| 秦皇岛市| 濉溪县| 天镇县| 五峰| 运城市| 平乡县| 新竹市| 娱乐| 宝兴县| 且末县| 莲花县| 绩溪县| 盐池县| 海晏县| 含山县| 榆中县| 唐河县| 车险| 兴业县| 辽中县| 芒康县| 贵港市| 京山县| 什邡市|