隨着IE六、七、8的逐漸淘汰,HTML5的興起,以及側重點放在了移動端,jQuery可能變的不在那麼重要,原生同樣很好用。下面介紹幾個原生替換jq的方法。css
//jQuery $('.xxx'); //class獲取 $('#xxx'); //id獲取 $('.xxx.ccc'); //同時包含xxx和ccc $('.xxx,.zzz'); //多選 $('.xxx div'); //子類 $('.xxx p:first'); //第一個P元素 //原生js //querySelector基本上實現了jq選擇器一樣的功能,具體能夠本身測試,另外querySelector返回的是第一個元素,querySelectorAll則返回全部選擇的元素。 document.querySelector('.xxx'); //class獲取 document.querySelector('#xxx');//id獲取 document.querySelector('.xxx.ccc');//同時包含xxx和ccc document.querySelector('.xxx,.ccc');//多選 document.querySelector('.xxx div');//子類 document.querySelector('.xxx p:first-child');//第一個P元素
//JQuery $('.xxx').addClass('class_name'); //原生js el.classList.add('class_name');
//JQuery $('.xxx').removeClass('class_name'); //原生js el.classList.remove('class_name');
//JQuery $('.xxx').toggleClass('class_name'); //原生js el.classList.toggle('class_name');
//JQuery $('.xxx').hasClass('class_name'); //原生js el.classList.contains('class_name');
上面是HTML5提供的新的方法,若是你非要爲了兼容所謂的IE,能夠用下面的這些html
//是否包含class function hasClass(o, n){ return new RegExp('\\b'+n+'\\b').test(o.className); }; //添加class function addClass(o, n){ if(!hasClass(o, n)) o.className+=' '+n; }; //刪除class function delClass(o, n){ if(hasClass(o, n)){ o.className = o.className.replace(new RegExp('(?:^|\\s)'+n+'(?=\\s|$)'), '').replace(/^\s*|\s*$/g, ''); }; };
//JQuery $(el).before(htmlString); $(parent).append(el); $(el).after(htmlString); //原生js parent.appendChild(el); el.insertBefore(NewDom,ele); ele.insertAdjacentHTML("beforeend", '<li>內容</li>'); //
具體insertAdjacentHTML的介紹,請移步到 這篇文章(點擊這裏)app
//JQuery $('.xxx').children(); $('.xxx').parent(); //原生js ele.children; ele.parentNode
//JQuery $('.xxx').prev(); //原生js var prev = ele.previousElementSibling || ele.previousSibling
//JQuery $('.xxx').next(); //原生js var next = ele.nextElementSibling || ele.nextSibling
//JQuery $(ele).siblings(); //原生js var siblings = Array.prototype.slice.call(el.parentNode.children); for (var i = siblings.length; i--;) { if (siblings[i] === el) { siblings.splice(i, 1); break; }; }; [].forEach.call(el.parentNode.children, function(child){ if(child !== el); });
//JQuery var ele = $('<div></div>'); //原生js var ele = document.createElement('div');
//JQuery $(ele).remove(); //原生js parent.removeChild(ele);
//JQuery $(ele).attr(name,value) //設置 $(ele).attr(name) //獲取 $(ele).removeAttr(name) //刪除 //原生js ele.setAttribute(name,value);//設置 ele.getAttribute(name);//獲取 ele.removeAttribute(name);//刪除
//JQuery $("body").data("foo", 52); //設置 $("body").data("foo"); //獲取 $("body").removeData("foo"); //刪除 //原生js ele.dataset.foo = 52 //設置 ele.dataset.foo //獲取
//JQuery var html = $(ele).html(); $(el).empty(); //原生js var html = ele.innerHTML; el.innerHTML = '';
//JQuery $(ele).text(); //原生js var txt = ele.textContent || ele.innerText
//JQuery $(ele).css('height','300px'); $(ele).css({ height:300 }); //原生js ele.style.height = '300px'; ele.style.cssText = 'height:200px;color:red;left:100px;'
//JQuery $(el).show(); $(el).hide(); //原生js el.style.display = ''; el.style.display = 'none';
//JQuery $(ele).innerHeight(); $(ele).outerHeight(); //原生js ele.clientHeight; ele.offsetHeight;
//JQuery $(ele).offset().left; $(ele).offset().top; //原生js ele.offsetLeft; ele.offsetTop;