最新国产好看的视频,伊人天堂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的對象里寫一些方法,就達到jq的這樣效果了。

實際

之后看了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ù)里,這樣避免了重復命名對變量的影響,通過window.$ = jQuery;把$掛在windo下,實現(xiàn)域外使用$的操作。

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

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

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

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

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

相關文章

  • jquery 插件學習(六)

    jquery 插件學習(六)

    把其中的參數(shù)默認值作為$.fn.color對象的屬性單獨進行設計,然后借助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 實例詳解的相關資料,需要的朋友可以參考下
    2016-09-09
  • 基于jQuery實現(xiàn)滾動刷新效果

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

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

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

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

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

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

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

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

    jqgrid 簡單學習筆記

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

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

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

    淺談jQuery中的事件

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

最新評論

张家港市| 邵东县| 新余市| 郓城县| 兴安盟| 涿州市| 漯河市| 吴江市| 新宁县| 鄂伦春自治旗| 耿马| 灵寿县| 甘洛县| 区。| 德钦县| 大关县| 沙河市| 长沙县| 黑河市| 万州区| 石城县| 清水河县| 平原县| 临武县| 望奎县| 德兴市| 东安县| 泰宁县| 潮安县| 酒泉市| 兴文县| 清徐县| 南城县| 南澳县| 获嘉县| 宜春市| 进贤县| 乌海市| 汽车| 化隆| 望江县|