12

たとえば、複数の引数タイプを受け入れるように設計された関数を書いていたとしましょう。

var overloaded = function (arg) {
    if (is_dom_element(arg)) {
        // Code for DOM Element argument...
    }
};

is_dom_elementクロスブラウザでかなり正確に機能するように実装するための最良の方法は何ですか?

4

3 に答える 3

20

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...
    }
};
于 2008-09-23T10:44:25.490 に答える
4

おそらくこれはここにあります:

node instanceof HTMLElement

これはほとんどのブラウザで機能するはずです。それ以外の場合は、ダックタイピングする必要があります(例typeof x.nodeType != 'undefined') 。

于 2008-09-23T10:43:27.783 に答える
0

どうですか

obj instanceof HTMLElement
于 2008-09-23T11:30:47.093 に答える