我有一个带有一个参数的函数,它是一个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();
所以我很难过,有什么想法吗?
感谢。
答案 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对象