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

以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方法就得自己去网页上查看。

转载于:https://www.cnblogs.com/abab301/p/8993883.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值