2013-03-06 84 views
0

我有一個參數的函數,它是一個ID字符串:的getElementsByTagName返回undefined

function experimentOne(masterContainer) { 

我與撥打:

experimentOne('#experimentOne'); 

我試圖獲取給定的DIV內的每個格並將其放置到一個數組,其作品,如果我用:

var menuButtons = $('#myDivIDHere').getElementsByTagName('div'); 

不過,如果我使用:

var menuButtons = masterContainer.getElementsByTagName('div'); 

我在控制檯中出現此錯誤。

TypeError: 'undefined' is not a function (evaluating 'parentContainer.getElementsByTagName('div', masterContainer)')

如果我輸出$(masterContainer);到控制檯它返回正確的元素,並且這個代碼是完美的:

var experimentOneMenuButton = $(masterContainer).children().last(); 

所以我難住,任何想法?

謝謝。

+0

什麼是'masterContainer'? – 2013-03-06 12:58:09

+1

嘗試'$(masterContainer).find('div');' – Dygestor 2013-03-06 12:59:38

回答

3

你需要使用jQuery element selector

var menuButtons = $('#myDivIDHere').find('div'); 

var menuButtons = $(masterContainer).find('div'); 

experimentOne()方法

getElementsByTagName是一個DOM方法,但$('#myDivIDHere')是一個jQuery對象,你沒有getElementsByTagName

如果要使用getElementsByTagName,則需要使用$(masterContainer)[0].getElementsByTagName,其中$(masterContainer)[0]爲您提供了dom參考。

+0

很可愛,謝謝。感謝所有的迴應。 – mrEmpty 2013-03-06 13:55:58

1

我不認爲.getElementsByTagName是jQuery對象上的方法。

您需要使用

var menuButtons = $('#myDivIDHere').get(0).getElementsByTagName('div'); 

的獲得(0)將返回DOM對象,而不是jQuery對象

+0

對不起,get()會返回一個DOM對象數組,我相信它就是您要查找的數組。 – 2013-03-06 13:01:44