码迷,mamicode.com
首页 > Web开发 > 详细

jQuery源码解析----内部插入的外部函数

时间:2018-05-05 11:18:15      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:ati   ==   get   插入   turn   方法   append   源码   源码解析   

以JQuery中的append()实现为例

append: function() {
    return this.domManip( arguments, function( elem ) {
        if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
            var target = manipulationTarget( this, elem );//会在后面实现
            target.appendChild( elem );
        }
    });
}

manipulationTarget()的实现:

function manipulationTarget( elem, content ) {

    return jQuery.nodeName( elem, "table" ) &&
    jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
    elem.getElementsByTagName("tbody")[0] ||elem.appendChild( elem.ownerDocument.createElement("tbody") ) :elem;
    }

  查看上面的manipulation()实现,要注意三目运算符?:的优先级低于运算符&&的优先级,所以manipulationTarget()返回该elem或者返回tbody及其innerHtml;

至于jQuery的nodeName方法就得自己去网页上查看。

jQuery源码解析----内部插入的外部函数

标签:ati   ==   get   插入   turn   方法   append   源码   源码解析   

原文地址:https://www.cnblogs.com/abab301/p/8993883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!