特定の JavaScript オブジェクトが DOM 要素であるかどうかを検出する最良の方法は何ですか?[重複]
-
02-07-2019 - |
質問
この質問にはすでに答えがあります:
たとえば、複数の引数の型を受け入れるように設計された関数を書いていたとします。
var overloaded = function (arg) {
if (is_dom_element(arg)) {
// Code for DOM Element argument...
}
};
実装する最良の方法は何ですか is_dom_element
クロスブラウザでかなり正確に動作するようにするには?
解決
jQuery は、nodeType プロパティをチェックします。したがって、次のようになります。
var overloaded = function (arg) {
if (arg.nodeType) {
// Code for DOM Element argument...
}
};
ただし、これにより要素だけでなくすべての DOM オブジェクトが検出されます。要素だけが必要な場合は、次のようになります。
var overloaded = function (arg) {
if (arg.nodeType && arg.nodeType == 1) {
// Code for DOM Element argument...
}
};
他のヒント
おそらくこれはここにあります:
node instanceof HTMLElement
これはほとんどのブラウザで動作するはずです。それ以外の場合は、ダックタイプする必要があります (例: typeof x.nodeType != 'undefined'
)
どうですか
obj instanceof HTMLElement
所属していません StackOverflow