ما هي أفضل طريقة لاكتشاف ما إذا كان كائن Javascript معينًا هو عنصر DOM؟[ينسخ]

StackOverflow https://stackoverflow.com/questions/120262

  •  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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top