1. 程式人生 > >原生dom選擇器

原生dom選擇器

getElement系列

getElementById

var obj = document.getElementById("eId");

這是最簡單不過的方法,引數id是必傳的字串,返回的是一個Object;這個方法的作用就是查詢id屬性值等於引數eId的第一個物件的引用,如果沒有找到,就返回null;當然,不考慮IE7的情況(IE7下會出現id和name混淆的問題,詳情可以看下IE中的id與name)。
var obj = document.getElementById(“eId1”).getElementById(“eId2”);(不可以這麼使用)
var obj = document.getElementById(“eId”).getElementByName(“eName”);(不可以這麼使用)(不可以這麼使用);即使用該方法返回的物件,不可以使用getElementById和getElementsByName方法。

getElementsByName

var objs = document.getElementsByName("eName");

這個方法和上面講到的getElementById相似,引數eName是必傳的,不過這個方法匹配的是name屬性,而不是id屬性;另外,這個方法返回的是一個數組,與上面一樣,在IE7也存在混淆的問題。
var obj = document.getElementsByName(“eName1”).getElementsByName(“eName2”);(不可以這麼使用)
var obj = document.getElementsByName(“eName”).getElementsById(“eId”);(不可以這麼使用);即使用該方法返回的物件,不可以使用getElementById和getElementByName方法。

getElementsByTagName

var objs = document.getElementsByTagName("eTagName");

getElementsByTagName方法的引數etagName也是必傳的,該方法會根據傳的eTagName查詢標籤相匹配的元素,返回的是一個數組。

getElementsByClassName

var objs = document.getElementsByClassName("eClassName");

getElementsByClassName方法在標準瀏覽器中都已經實現,它的特點與getElementsByTagName相同,引數傳的是對應的class屬性值。不過,坑爹的是IE沒有這個方法,需要我們自己去實現,具體的方法可以看看這篇部落格:

document.getElementsByClassName的理想實現

querySelector系列

var obj = document.querySelector(cssselecter);
var obj = document.querySelectorAll(cssselecter);

querySelector 和 querySelectorAll 方法是 W3C Selectors API 規範中定義的。他們的作用是根據 CSS 選擇器規範,便捷定位文件中指定元素。兩者不同的是querySelector返回的是一個匹配物件,querySelectorAll返回的一個集合(objNodeList )。用過jquery或者是zepto的應該都熟悉css選擇器,就不多說了,不會的可以看看這篇:CSS選擇器

目前支援他們的瀏覽器包括。包括 IE8(含) 以上版本、 Firefox、 Chrome、Safari、Opera等。