0

ID文字列である1つのパラメータを持つ関数があります:

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

を使用したい場合は、domリファレンスを提供するwheregetElementsByTagNameを使用する必要があります。$(masterContainer)[0].getElementsByTagName$(masterContainer)[0]

于 2013-03-06T13:01:38.317 に答える
1

.getElementsByTagNameがjQueryオブジェクトのメソッドだとは思いません。

あなたが使用する必要があります

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

.get(0)は、jQueryオブジェクトではなくDOMオブジェクトを返します

于 2013-03-06T13:01:03.263 に答える