用 JS 原生方法实现 jQuery 的 append, prepend, before, after

相当于 $(el).before('html' | element)

el.insertAdjacentHTML('beforeBegin', 'html');
el.insertAdjacentElement('beforebegin', element)

相当于 $(el).prepend('html' | element)

el.insertAdjacentHTML('afterBegin', 'html');
el.insertBefore(element, el.firstChild)

相当于 $(el).append('html' | element)

el.insertAdjacentHTML('beforeEnd', 'html');
el.appendChild(element)

相当于 $(el).after('html' | element)

el.insertAdjacentHTML('afterEnd', 'html');
el.insertAdjacentElement('afterend', element)

相当于 $(el).addClass(className)

el.classList.add(className)

相当于 $(el).removeClass(className)

el.classList.remove(className)

相当于 $(el).toggleClass(className)

el.classList.toggle(className)

相当于 $(el).offset()

var rect = el.getBoundingClientRect();

{
  top: rect.top + document.body.scrollTop,
  left: rect.left + document.body.scrollLeft
}

相当于 $(el).remove()

el.parentNode.removeChild(el)

相当于 $(el).on(eventName, eventHandler)

el.addEventListener(eventName, eventHandler)

相当于 $(el).off(eventName, eventHandler)

el.removeEventListener(eventName, eventHandler)

相当于 $(document).on(eventName, elementSelector, handler)

document.addEventListener(eventName, function(e) {
    const handler = function(e) {
        console.log(this)
        console.log(e)
    }
    for (var target = e.target; target && target != this; target = target.parentNode) {
        if (target.matches(elementSelector)) {
            handler.call(target, e);
            break;
        }
    }
}, false);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值