getElementsByTagName返回undefined

时间:2013-03-06 12:55:48

标签: javascript getelementsbytagname

我有一个带有一个参数的函数,它是一个ID字符串:

function experimentOne(masterContainer) {

我打电话给:

experimentOne('#experimentOne');

我正在尝试将每个div放在给定DIV的内部并将其放入一个数组中,如果我使用它就可以使用:

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

但是,如果我使用:

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

我在控制台中收到此错误。

  

TypeError:'undefined'不是一个函数(评估   'parentContainer.getElementsByTagName('div',masterContainer)')

如果我输出$(masterContainer);到控制台它返回正确的元素,这段代码运行正常:

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

所以我很难过,有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分: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参考。

答案 1 :(得分:1)

我不认为.getElementsByTagName是jQuery对象上的一个方法。

您需要使用

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

.get(0)将返回DOM对象,而不是jQuery对象