jQuery的原生替代

参考自你不需要jQuery,对其进行了更清晰的总结与分类,现代游览器基本都支持(ie10+以上),只整理了最简洁实用的原生代码,过分累赘的实现没有加入

元素获取

jQuery 原生
$(selector) document.querySelectorAll(selector)
$(el).find(selector) el.querySelectorAll(selector)
$(el).prev() el.previousElementSibling
$(el).next() el.nextElementSibling
$(el).first() el.firstElementChild
$(el).last() el.lastElementChild
$(el).parent() el.parentNode
$(el).offsetParent() el.offsetParent
$(el).children() el.children
$(el).siblings() Array.prototype.filter.call(el.parentNode.children, child => child !== el)

dom操作

jQuery 原生
$(el).before(htmlString) 老api => el.insertAdjacentHTML('beforebegin', htmlString)
新api => el.before(string)
$(el).after(htmlString) 老api => el.insertAdjacentHTML('afterend', htmlString)
新api => el.after(string)
$(parent).prepend(el) 老api => parent.insertBefore(el, parent.firstChild)
新api => el.prepend(htmlString)
$(parent).append(el) 老api => parent.appendChild(el)
新api => el.append(htmlString)
$(el).remove() 老api => el.parentNode.removeChild(el)
新api => el.remove()
$(el).clone() el.cloneNode(true)
$(el).empty() el.innerHTML = ''
$(el).replaceWith(string) el.outerHTML = string
$(el).html(string) el.innerHTML = string
$(el).text(string) el.textContent = string
$(el).val(string) el.value = string
$(el).html() el.innerHTML
$(el).text() el.textContent
$(el).val() el.value

样式操作

jQuery 原生
$(el).hasClass(className) el.classList.contains(className)
$(el).addClass(className) el.classList.add(className)
$(el).removeClass(className) el.classList.remove(className)
$(el).toggleClass(className) el.classList.toggle(className)
$(el).css(ruleName) getComputedStyle(el)[ruleName]
$(el).css('width', '20px') el.style.width = '20px'

属性操作

jQuery 原生
$(el).attr('title') el.getAttribute('title')
$(el).attr('title', string) el.setAttribute('title', string)

位置/尺寸

jQuery 原生
$(el).position()
$(el).offset() el.getBoundingClientRect()
$(el).outerWidth() el.offsetWidth
$(el).outerHeight() el.offsetHeight
$(el).scrollTop() el.scrollTop
$(el).scrollLeft() el.scrollLeft

特效

jQuery 原生
$(el).hide() el.style.display = 'none'
$(el).show() el.style.display = ''

dom载入完毕

jQuery 原生
$(方法) document.addEventListener('DOMContentLoaded', 方法)
posted @ 2019-02-02 17:49  戡玉  阅读(908)  评论(0编辑  收藏  举报