ما هي أفضل طريقة لاكتشاف ما إذا كان كائن 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