2013-03-11 48 views
2

我在看的JavaScript和jQuery之間的各種實踐的差異,在這個網站,我偶然發現了一些東西,我didn`t知道到現在爲止,稱爲傳統的JavaScript在此鏈接: http://alittlecode.com/comparing-scripts-in-jquery-and-javascript-a-comparison-by-jeffrey-way/Legacy JavaScript和Javascript最大的區別是什麼?

選擇元素 的jQuery

$('#container'); 

的JavaScript

var container = document.querySelector('#container'); 

傳統的JavaScript

var container = document.getElementById('container'); 

什麼是,什麼是更現代的,什麼是真正的交易在這裏?感謝:

+0

遺產只是意味着'過時和過時'。 – 11684 2013-03-11 12:16:48

+0

可能值得注意的是,如果你想要的只是一個具有特定ID的元素,那麼使用['getElementById'](https://developer.mozilla.org/en-US/docs/DOM/document.getElementById)[ **更快**](http://jsperf.com/getelementbyid-vs-queryselector/23) – 2013-03-11 12:17:37

+0

注:JavaScript沒有定義任何這些方法。它們是Web Platform API的一部分。在這種情況下使用術語「遺留JavaScript」是誤導性的。 – 2013-03-11 12:18:24

回答

2

querySelector()是一個新的選擇器API的一部分。它比簡單的getElementById()更加靈活和強大。

試想一下,在示例中的W3C recommendation

使用舊的getElementById():

var table = document.getElementById("score"); 
var groups = table.tBodies; 
var rows = null; 
var cells = []; 

for (var i = 0; i < groups.length; i++) { 
    rows = groups[i].rows; 
    for (var j = 0; j < rows.length; j++) { 
    cells.push(rows[j].cells[1]); 
    } 
} 

使用querySelector():

var cells = document.querySelectorAll("#score>tbody>tr>td:nth-of-type(2)"); 

單從這個例子你可以看到,這兩種方法在功能上並不相同TY。

此外,請注意,這些都不是Java腳本語言本身的一部分,而是瀏覽器的DOM API。

相關問題