0

我有一个带有一个参数的函数,它是一个 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();

所以我很困惑,有什么想法吗?

谢谢。

4

2 回答 2

3

您需要使用 jQuery元素选择器

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

或者

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

在你的experimentOne()方法中

getElementsByTagName是一个 dom 方法,但$('#myDivIDHere')它是一个 jQuery 对象,你没有getElementsByTagName.

如果要使用getElementsByTagName,则需要使用$(masterContainer)[0].getElementsByTagNamewhere$(masterContainer)[0]为您提供 dom 引用。

于 2013-03-06T13:01:38.317 回答
1

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

你需要使用

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

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

于 2013-03-06T13:01:03.263 回答