0

link 要素からクラス.ui-mobile-viewportを持つ最も近い要素まで DOM をループしています。これは、DIVまたはBODY要素のいずれかです。

それがどの要素であるかを確認する必要があり、どこにも行きません...これが私が試みていることです:

var targetViewport;

// ループで targetViewport を $('div.ui-mobile-viewport') または $('body.ui-mobile-viewport') として設定します

if ( targetViewport === $('body') ) {
   console.log("found a body");
   }

手伝ってくれてありがとう!

4

5 に答える 5

5

.closest()自分でトラバーサルを行う代わりに、jQueryのメソッドを使用してみることができます。だから私はあなたがこれを行うことができると思います:

var x = $('thing-that-was-clicked').closest('.ui-mobile-viewport');
alert(x.is('body'));
alert(x.is('div'));

これで、その要素が jQuery オブジェクトとして取得され、上記のコードのチェックや表示.ui-mobile-viewportなど、必要なテストを実行できます。bodydiv

于 2012-04-25T13:42:05.553 に答える
2

jQueryコレクションを比較することはできません...実際にノードを比較する必要があるため、targetViewportがjQueryコレクションも保持していると仮定すると、次のことができます。

if ( targetViewport[0] === document.body ) {
  console.log("found a body");
}

動作するはずです...

編集:jQueryの方法が好きな場合(追加の関数呼び出しを使用)

if (targetViewport.is('body')) {
  console.log("found a body");
}
于 2012-04-25T13:37:28.083 に答える
2

要素の nodeName に簡単にアクセスできます。

if (targetViewport[0].nodeName.toUpperCase() === 'BODY') {

}

そうすれば、チェックのために CSS クエリを実行する必要がなく、jQuery を呼び出すことができ、どのライブラリにも依存しません。

于 2012-04-25T13:44:43.550 に答える
1
if(targetViewport[0] === document.body)
if(targetViewport[0].nodeName === 'BODY')
于 2012-04-25T13:41:52.463 に答える
0

要素がセレクターに一致するかどうかをチェックする.is()methodを探しています。

if (targetViewport.is('body'))
于 2012-04-25T13:37:20.487 に答える