欧美中文字幕第一页-欧美中文字幕一区-欧美中文字幕一区二区三区-欧美中文字幕在线-欧美中文字幕在线播放-欧美中文字幕在线视频

jQuery語(yǔ)法對(duì)應(yīng)的DOM API ——選擇元素 – WEB前端開發(fā)

我是創(chuàng)始人李巖:很抱歉!給自己產(chǎn)品做個(gè)廣告,點(diǎn)擊進(jìn)來(lái)看看。  
英文原文: http://blog.garstasio.com/you-dont-need-jquery/selectors/
愚人碼頭注:

選擇元素

有多少次你看到一個(gè)Web應(yīng)用程序或庫(kù)使用jQuery執(zhí)行簡(jiǎn)單瑣碎的元素選擇?有多少次 這樣寫: $(#myElement') ? 或者這樣 $('.myElement') ?噓……你不需要用jQuery選擇元素!這使用DOM API也很容易做到。

  1. IDs
  2. CSS Classes
  3. Tag Names
  4. Attributes
  5. Pseudo-classes
  6. Children
  7. Descendants
  8. Exclusion Selectors
  9. Multiple Selectors
  10. See a Pattern?
  11. Filling in the Gaps
  12. Next in this Series

By ID

jQuery

				// returns a jQuery obj w/ 0-1 elements
				$('#myElement');
			

DOM API

				// IE 5.5+
				document.getElementById('myElement');
			

…或者…

				// IE 8+
				document.querySelector('#myElement');
			

這兩種方法返回一個(gè) Element (元素)。 需要注意的是 使用 getElementById 比使用 querySelector 更高效 。

請(qǐng)問jQuery的語(yǔ)法提供任何好處嗎?我沒有看到一個(gè)。你呢?

By CSS Class

jQuery

				// returns a jQuery obj w/ all matching elements
				$('.myElement');
			

DOM API

				// IE 9+
				document.getElementsByClassName('myElement');
			

…或者…

				// IE 8+
				document.querySelectorAll('.myElement');
			

第一個(gè)方法返回的 HTMLCollection ,并且 效率最高的是第二個(gè)方法 。 querySelectorAll 總是返回一個(gè) NodeList (節(jié)點(diǎn)列表) 。

同樣,這里真的很簡(jiǎn)單的東西。為什么要使用jQuery?

By Tag Name

舉個(gè)例子,選擇頁(yè)面上所有的 <div> 元素:

jQuery

$('div');

DOM API

				// IE 5.5+
				document.getElementsByTagName('div');
			

…或者…

				// IE 8+
				document.querySelectorAll('div');
			

正如預(yù)期的那樣, querySelectorAll (返回 NodeList )比 getElementsByTagName (返回 HTMLCollection )效率低。

By Attribute(屬性)

選擇所有”data-foo-bar”值為”someval”的元素:

jQuery

$('[data-foo-bar="someval"]');

DOM API

					// IE 8+
					document.querySelectorAll('[data-foo-bar="someval"]');
				

DOM API和jQuery語(yǔ)法非常相似。

By Pseudo-class(偽類)

選擇所有在指定表單中的當(dāng)前無(wú)效(:invalid 偽類)字段。假設(shè)我們的表單 ID為”myForm”。

jQuery

$('#myForm :invalid');

DOM API

					// IE 8+
					document.querySelectorAll('#myForm :invalid');
				

Children(子元素)

選擇一個(gè)特定元素的所有子元素。?假設(shè)我們的特定元素 ID為 “myParent”。

jQuery

$('#myParent').children();

DOM API

					// IE 5.5+
					// NOTE: This will include comment and text nodes as well.
					document.getElementById('myParent').childNodes;
				

…或者…

					// IE 9+ (ignores comment & text nodes).
					document.getElementById('myParent').children;
				

但是,如果我們只想找到特定的子元素呢?比如,有 “ng-click”屬性的子元素?

jQuery

$('#myParent').children('[ng-click]');

…或…

$('#myParent > [ng-click]');

DOM API

					// IE 8+
					document.querySelector('#myParent > [ng-click]');
				

Descendants(后代元素)

找到#myParent下面所有”a”元素。

jQuery

$('#myParent A');

DOM API

					// IE 8+
					document.querySelectorAll('#myParent A');
				

Excluding Elements(排除元素)

選擇所有 <div> 元素,排除那些有”ignore”樣式類 <div> 元素。

jQuery

$('DIV').not('.ignore');

…或者…

$('DIV:not(.ignore)');

DOM API

					// IE 9+
					document.querySelectorAll('DIV:not(.ignore)');
				

Multiple Selectors(多重選擇)

選擇所有 <div> , <a><script> 元素。

jQuery

$('DIV, A, SCRIPT');

DOM API

					// IE 8+
					document.querySelectorAll('DIV, A, SCRIPT');
				

See a Pattern?

如果我們專注于選擇器的支持,并且不需要處理IE8以下的瀏覽器,我們只需用這個(gè)替代jQuery:

					window.$ = function(selector) {
					var selectorType = 'querySelectorAll';
					if (selector.indexOf('#') === 0) {
					selectorType = 'getElementById';
					selector = selector.substr(1, selector.length);
					}
					return document[selectorType](selector);
					};
				

But I Want More!

對(duì)于絕大多數(shù) 項(xiàng)目中,選擇器支持到Web API就足夠了。但是,如果你不幸需要支持IE7?在這種情況下,你可能需要一些第三方的代碼來(lái)提供一些幫助。

當(dāng)然,你僅僅需要引入jQuery,但當(dāng)你只需要支持現(xiàn)在先進(jìn)的選擇器時(shí),為什么用這么大的代碼庫(kù)呢?相反,嘗試一下micro-library(微小的庫(kù))完全專注于元素選擇。考慮, Sizzle ,這恰好是jQuery使用的選擇庫(kù)。 Selectivizr 是另一種非常小的選擇庫(kù),在很老的瀏覽器上也能支持CSS3選擇器。

Next

下一篇:操作DOM元素,敬請(qǐng)期待!

本文被轉(zhuǎn)載1次

首發(fā)媒體 Web前端開發(fā) | 轉(zhuǎn)發(fā)媒體

隨意打賞

提交建議
微信掃一掃,分享給好友吧。
主站蜘蛛池模板: 日本不卡1 | 色婷婷视频 | 夜色资源网yese321 | 五月色婷婷综合激情免费视频 | 亚洲精品久久久久午夜福 | 夜色私人影院永久地址入口 | 中文字幕精品视频在线 | 日韩在线视频在线 | 成人网18免费视频 | 成人a毛片一级 | 青青草久热精品视频在线观看 | 黄色免费看看 | 日本高清中文字幕在线观穿线视频 | 69香蕉视频 | 69精品| 久热免费在线视频 | 九七97影院理论片手机在线观看 | 女人洗澡一级毛片一级毛片 | 亚洲欧美另类图片 | 超级乱淫视频播放日韩 | 免费观看欧美精品成人毛片 | 97在线免费观看 | 国产真实伦偷精品 | 99er久久| 毛片视频网站在线观看 | 57pao一国产成视频永久免费 | 亚洲日本人成中文字幕 | 日韩精品欧美精品中文精品 | 好吊妞在线播放 | 欧美精品福利在线视频 | 国产成人精品久久免费动漫 | 特级毛片免费观看视频 | 五月激情婷婷综合 | 小视频国产 | 久久视频在线免费观看 | 欧美日韩高清在线观看一区二区 | 九九热在线观看视频 | 欧美末成年videos在线观看 | 中国一级毛片 | 久久久久久国产精品视频 | 中文字幕一区在线 |