たとえば、複数の引数タイプを受け入れるように設計された関数を書いていたとしましょう。
var overloaded = function (arg) {
if (is_dom_element(arg)) {
// Code for DOM Element argument...
}
};
is_dom_element
クロスブラウザでかなり正確に機能するように実装するための最良の方法は何ですか?
たとえば、複数の引数タイプを受け入れるように設計された関数を書いていたとしましょう。
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