2012-08-04 86 views
0

我有一個JavaScript的選擇是這樣的:的getElementsByTagName排除元素(過濾器)

var inputs = document.getElementsByTagName("input"); 

這工作,只是我想篩選出一些投入(那些與類的「存在」)

如何在沒有jQuery的情況下做到這一點?

+4

遍歷元素,把你想保留在數組中的。如果['querySelectorAll'](https://developer.mozilla.org/en-US/docs/DOM/Document.querySelectorAll)在代碼應該運行的瀏覽器中可用,我寧願使用它。 – 2012-08-04 15:28:07

+0

@ felix-kling我想要這樣的東西:var inputs = document.getElementsByTagName(「input:not('。existent')」);我還需要在舊版瀏覽器上使用此代碼。 – 2012-08-04 15:40:04

+0

是的,這是行不通的。這就是爲什麼我說你必須迭代元素,測試每個元素,如果他們有這個類,如果沒有,保留它(把它放在另一個數組中)。 – 2012-08-04 15:41:56

回答

3

這是你所需要的:

var inputs = document.getElementsByTagName("input"); 
var neededElements = []; 
for (var i = 0, length = inputs.length; i < length; i++) { 
    if (input[i].className.indexOf('exists') >= 0) { 
     neededElements.push(input[i]); 
    } 
}