আমি কীভাবে জাভাস্ক্রিপ্টে কোনও HTML উপাদানটির ধরণ নির্ধারণ করতে পারি?


190

জাভাস্ক্রিপ্টে এইচটিএমএল উপাদানটির ধরণ নির্ধারণ করার জন্য আমার একটি উপায় প্রয়োজন। এটির আইডি রয়েছে তবে উপাদানটি নিজেই একটি <div>, <form>ক্ষেত্র, ক <fieldset>ইত্যাদি হতে পারে আমি কীভাবে এটি অর্জন করতে পারি?

উত্তর:


290

nodeNameআপনি যে বৈশিষ্ট্যটি সন্ধান করছেন তা হ'ল। উদাহরণ স্বরূপ:

var elt = document.getElementById('foo');
console.log(elt.nodeName);

নোট করুন যে nodeNameউপাদানটির নাম মূলধন এবং কোণ বন্ধনী ছাড়াই প্রত্যাবর্তন করে যার অর্থ আপনি যদি কোনও উপাদান উপাদান হিসাবে পরীক্ষা করতে চান তবে আপনি <div>এটি নিম্নলিখিত হিসাবে এটি করতে পারেন:

elt.nodeName == "DIV"

যদিও এটি আপনাকে প্রত্যাশিত ফলাফল দেয় না:

elt.nodeName == "<div>"

29
আমি এটি এটির মতো করার প্রস্তাব দিই: যদি (elt.nodeName.toLowerCase () === "Div") {... way এই কারণে, যদি কোনও কারণে এটি বড় হাতের অক্ষরে (ছোট হাতের বা মিশ্রিত) আর ফিরে না আসে, আপনি এটি পরিবর্তন করতে হবে না এবং এই কোডটি এখনও ঠিক কাজ করবে।
TheCuBeMan

6
@TheCuBeMan এর জবাবে, ToLowerCase () ব্যবহার করে আপনাকে নোডনামের উপস্থিতিও নিশ্চিত করতে হবে (যদি এটি কোনও সম্ভাব্য এল্ট না হয় তবে বাস্তবে কোনও উপাদান নেই):if (elt.nodeName && elt.nodeName.toLowerCase() === 'div') { ... }
এরিক কোপম্যানস

কি localName?
বোম্বা

46

কি হবে element.tagName?

আরও দেখুন tagNameMDN তে দস্তাবেজ


4
টাইমস্ট্যাম্প অনুসারে আপনি আমাকে 1 সেকেন্ডেরও কম মারলেন!
পলকহীনতা

27
কুইর্কসমোড থেকে: আমার পরামর্শটি কোনওভাবে ট্যাগ নাম ব্যবহার করা উচিত নয়। নোডনেমে ট্যাগনামের সমস্ত কার্যকারিতা রয়েছে এবং আরও কয়েকটি। সুতরাং নোডনাম সর্বদা ভাল পছন্দ।
বিডুকস

7

কখনও কখনও আপনি চান element.constructor.name

document.createElement('div').constructor.name
// HTMLDivElement

document.createElement('a').constructor.name
// HTMLAnchorElement

document.createElement('foo').constructor.name
// HTMLUnknownElement

7

আপনি এর মাধ্যমে জেনেরিক কোড পরিদর্শন ব্যবহার করতে পারেন instanceof:

var e = document.getElementById('#my-element');
if (e instanceof HTMLInputElement) {}         // <input>
elseif (e instanceof HTMLSelectElement) {}    // <select>
elseif (e instanceof HTMLTextAreaElement) {}  // <textarea>
elseif (  ... ) {}                            // any interface

ইন্টারফেসের একটি সম্পূর্ণ তালিকা জন্য এখানে দেখুন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.