日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

你可能不需要 jQuery!使用原生 JavaScript 进行开发

發(fā)布時間:2025/3/17 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你可能不需要 jQuery!使用原生 JavaScript 进行开发 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  很多的 JavaScript 開發(fā)人員,包括我在內,都很喜歡 jQuery。因為它的簡單,因為它有很多豐富的插件可供使用,和其它優(yōu)秀的工具一樣,jQuery 讓我們開發(fā)人員能夠更輕松的開發(fā)網站和 Web 應用。

  然而,另一方面,作為前端開發(fā)的基礎框架,jQuery 包含大量的兼容性代碼和擴展功能,其中有很多在你的整個項目中可能都不會用到。其實如果你只是針對現(xiàn)代瀏覽器,很多功能使用原生的 JavaScript 就可以實現(xiàn),即使是拖后腿的低版本 IE 瀏覽器,兼容性也是很容易處理的。

您可能感興趣的相關文章
  • 期待已久的2013年度最佳 jQuery 插件揭曉
  • 小伙伴們都驚呆了!8個超炫的 Web 效果
  • 10大流行的 Metro UI 風格 Bootstrap 主題
  • 推薦35款精致的 CSS3 和 HTML5 網頁模板
  • 精選12款優(yōu)秀 jQuery Ajax 分頁插件和教程

?

?

  下面就帶大家一起看看在 IE 瀏覽器環(huán)境中如果使用原生?JavaScript?代碼實現(xiàn) jQuery 中的功能。如果你打算自己開發(fā)一個小的基礎框架,可以好好參考一下這些代碼的實現(xiàn)。?

Ajax Post

jQuery:

$.ajax({type: 'POST',url: '/my/url',data: data });

IE8+:

var request = new XMLHttpRequest(); request.open('POST', '/my/url', true); request.send(data);

Ajax Get

jQuery:

$.ajax({type: 'GET',url: '/my/url',success: function(resp) {},error: function() {} }); 

IE8+:

request = new XMLHttpRequest(); request.open('GET', '/my/url', true);request.onreadystatechange = function() {if (this.readyState === 4){if (this.status >= 200 && this.status < 400){// Success!resp = this.responseText;} else {// Error :(}} }request.send(); request = null;

加載 JSON

jQuery:

$.getJSON('/my/url', function(data) {});

IE8+:

request = new XMLHttpRequest(); request.open('GET', '/my/url', true);request.onreadystatechange = function() {if (this.readyState === 4){if (this.status >= 200 && this.status < 400){// Success!data = JSON.parse(this.responseText);} else {// Error :(}} }request.send(); request = null;

淡入效果

jQuery:

$(el).fadeIn();  

IE8+:

function fadeIn(el) {var opacity = 0;el.style.opacity = 0;el.style.filter = '';var last = +new Date();var tick = function() {opacity += (new Date() - last) / 400;el.style.opacity = opacity;el.style.filter = 'alpha(opacity=' + (100 * opacity)|0 + ')';last = +new Date();if (opacity < 1) {(window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);}};tick(); }fadeIn(el);

顯示和隱藏

jQuery:

$(el).show(); $(el).hide();

IE8+:

el.style.display = ''; el.style.display = 'none';

添加 Class

jQuery:

$(el).addClass(className);

IE8+:

if (el.classList)el.classList.add(className); elseel.className += ' ' + className;

插入 HTML

jQuery:

$(el).before(htmlString); $(parent).append(el); $(el).after(htmlString);

IE8+:

el.insertAdjacentHTML('beforebegin', htmlString); parent.appendChild(el); el.insertAdjacentHTML('afterend', htmlString);

獲取子節(jié)點

jQuery:

$(el).children();

IE8+:

var children = []; for (var i=el.children.length; i--;){// Skip comment nodes on IE8if (el.children[i].nodeType != 8)children.unshift(el.children[i]); }

循環(huán)節(jié)點

jQuery:

$(selector).each(function(i, el){});

IE8+:

function forEachElement(selector, fn) {var elements = document.querySelectorAll(selector);for (var i = 0; i < elements.length; i++)fn(elements[i], i); }forEachElement(selector, function(el, i){});

清空節(jié)點

jQuery:

$(el).empty();

IE8+:

while(el.firstChild)el.removeChild(el.firstChild)

過濾節(jié)點

jQuery:

$(selector).filter(filterFn);

IE8+:

function filter(selector, filterFn) {var elements = document.querySelectorAll(selector);var out = [];for (var i = elements.length; i--;) {if (filterFn(elements[i]))out.unshift(elements[i]);}return out; }filter(selector, filterFn);

查找元素

jQuery:

$(el).find(selector); $('.my #awesome selector');

IE8+:

el.querySelectorAll(selector); document.querySelectorAll('.my #awesome selector');

獲取屬性、HTML或者文本

jQuery:

$(el).attr('tabindex'); $(el).html(); $('<div>').append($(el).clone()).html(); $(el).text();

IE8+:

el.getAttribute('tabindex'); el.innerHTML el.outerHTML el.textContent || el.innerText

判斷是否包含某個 css class

jQuery:

$(el).hasClass(className);

IE8+:

if (el.classList)el.classList.contains(className); elsenew RegExp('(^| )' + className + '( |$)', 'gi').test(el.className); 

選擇器匹配

jQuery:

$(el).is('.my-class');

IE8+:

var matches = function(el, selector) {var _matches = (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector);if (_matches) {return _matches.call(el, selector);} else {var nodes = el.parentNode.querySelectorAll(selector);for (var i = nodes.length; i--;)if (nodes[i] === el) {return true;}return false; }matches(el, '.my-class');

前一個節(jié)點

jQuery:

$(el).prev();

IE8+:

// prevSibling can include text nodes function previousElementSibling(el) {do { el = el.previousSibling; } while ( el && el.nodeType !== 1 );return el; }el.previousElementSibling || previousElementSibling(el);

后一個節(jié)點

jQuery:

$(el).next();

IE8+:

// nextSibling can include text nodes function nextElementSibling(el) {do { el = el.nextSibling; } while ( el && el.nodeType !== 1 );return el; }el.nextElementSibling || nextElementSibling(el);

外部高度

jQuery:

$(el).outerHeight()

IE8+:

function outerHeight(el, includeMargin){var height = el.offsetHeight;if(includeMargin){var style = el.currentStyle || getComputedStyle(el);height += parseInt(style.marginTop) + parseInt(style.marginBottom);} return height; }outerHeight(el, true);

外部寬度

jQuery:

$(el).outerWidth()

IE8+:

function outerWidth(el, includeMargin){var height = el.offsetWidth;if(includeMargin){var style = el.currentStyle || getComputedStyle(el);height += parseInt(style.marginLeft) + parseInt(style.marginRight);} return height; }outerWidth(el, true);

判斷是否數(shù)組

jQuery:

$.isArray(arr);

IE8+:

isArray = Array.isArray || function(arr) {return Object.prototype.toString.call(arr) == '[object Array]'; }isArray(arr);

數(shù)組轉換

jQuery:

$.map(array, function(value, index){})

IE8+:

function map(arr, fn) {var results = []for (var i = 0; i < arr.length; i++)results.push(fn(arr[i], i))return results }map(array, function(value, index){})

  類似的還有很多很多,可以參考這里:http://youmightnotneedjquery.com/。

您可能感興趣的相關文章
  • 精心挑選的美輪美奐的 jQuery 圖片特效插件
  • 精心挑選的優(yōu)秀jQuery Ajax分頁插件和教程
  • 精心挑選的優(yōu)秀 jQuery 文本特效插件和教程
  • 8款非常棒的響應式 jQuery 幻燈片插件推薦
  • 精心挑選12款優(yōu)秀 jQuery 手風琴插件和教程

?

本文鏈接:你可能不需要 jQuery!編寫原生的JavaScript代碼

編譯來源:夢想天空 ◆ 關注前端開發(fā)技術 ◆ 分享網頁設計資源

總結

以上是生活随笔為你收集整理的你可能不需要 jQuery!使用原生 JavaScript 进行开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人有色视频 | 特黄特色免费视频 | 黄色免费在线观看视频 | 国产熟女一区二区 | 都市激情久久 | 91黄色免费版 | 黄色成人av在线 | 久久久精品视频免费 | 啪啪精品 | 97精品国产露脸对白 | 成人国产精品蜜柚视频 | 一区二区三区四区在线 | 国产伦精品一区二区三区妓女下载 | 亚洲人成无码网站久久99热国产 | 日韩黄色免费视频 | 黑白配高清国语在线观看 | 色图一区 | 中国久久 | 日本在线精品视频 | 欧美理伦片在线播放 | 五月激情丁香网 | 五月天婷婷社区 | 亚洲欧美中文字幕5发布 | 成人午夜视频免费在线观看 | 香蕉视频官方网站 | 久久94| 日本a级免费 | 亚洲欧美第一页 | 粉嫩一区 | 手机在线不卡av | 美女爱爱视频 | 91资源在线视频 | www.com操| 欧美黑吊大战白妞 | 久久97视频 | 在线免费观看中文字幕 | 老熟妇午夜毛片一区二区三区 | av伦理在线 | 好男人在线视频www 亚洲福利国产 | 国产网站视频 | 日韩一区二区免费在线观看 | 日韩a在线播放 | 国产精品国产三级国产aⅴ原创 | 欧美aa一级| 国产欧美一区二区三区在线看蜜臀 | 精品视频久久久久久久 | 插我舔内射18免费视频 | 欧美网站在线观看 | 亚洲国产精品无码久久 | 不卡中文字幕 | 国产强被迫伦姧在线观看无码 | 久久激情小说 | 国产www免费 | 亚洲一区二区蜜桃 | a级黄色录像 | 欧美做受高潮动漫 | 精品久久久无码中文字幕边打电话 | 伊人久久大香线蕉综合75 | 国产做受网站 | 欧美人禽杂交狂配 | www成人| 久久丫精品国产亚洲av不卡 | 91中文字幕在线视频 | 天天色小说 | 国产91精品高潮白浆喷水 | 性猛交ⅹxxx富婆视频 | 高清视频免费在线观看 | 国产精品久久久久久免费观看 | 日本黄色中文字幕 | 色婷婷亚洲一区二区三区 | 日本久热| 国产任你操| 91精产国品一二三区在线观看 | 美国三级a三级18 | 中文字幕成人网 | 丝袜制服中文字幕 | 国产成人无码一区二区三区在线 | 欧美日韩中文字幕在线 | 97超碰免费观看 | 91成人入口 | 色婷婷色 | 日本精品网站 | 538任你躁在线精品免费 | 日产精品久久久 | 综合成人在线 | 亚洲人午夜射精精品日韩 | 激情在线视频 | 国产精品一区二区三区四区 | 免费成人深夜夜国外 | 国产精品伦理一区 | 日韩美女一区二区三区 | 久久不卡视频 | 亚洲av片一区二区三区 | 精品国产精品国产偷麻豆 | 99re99| 嫩草导航 | 啪视频在线观看 | 国产精品人人爽 | 美女一区二区三区 |