উত্তর:
tagName
সম্পত্তি জন্য বিশেষভাবে বোঝানো হয় উপাদান নোড (1 নোড টাইপ করুন) ধরণ পেতে উপাদান ।
নোডের আরও বেশ কয়েকটি প্রকার রয়েছে (মন্তব্য, বৈশিষ্ট্য, পাঠ্য ইত্যাদি)। বিভিন্ন নোডের যে কোনওটির নাম পেতে, আপনি nodeName
সম্পত্তিটি ব্যবহার করতে পারেন ।
nodeName
কোনও এলিমেন্ট নোডের বিপরীতে ব্যবহার করার সময় আপনি এর ট্যাগের নামটি পেয়ে যাবেন, তাই হয় সত্যিই ব্যবহার করা যেতে পারে, যদিও আপনি ব্যবহার করার সময় ব্রাউজারগুলির মধ্যে আরও ভাল ধারাবাহিকতা পাবেন nodeName
।
এটি উভয়ের মধ্যে পার্থক্যের একটি দুর্দান্ত ভাল ব্যাখ্যা।
নিবন্ধ থেকে পাঠ্য যুক্ত:
tagName
এবংnodeName
এইচটিএমএল উপাদানটির নাম যাচাই করার জন্য উভয়ই জাভাস্ক্রিপ্টের বৈশিষ্ট্য। বেশিরভাগ উদ্দেশ্যে, হয় ঠিকঠাক করবে তবে নোডনামকে অগ্রাধিকার দেওয়া হয় যদি আপনি কেবল এ-গ্রেড ব্রাউজারগুলিকে সমর্থন করেন এবং আপনি যদি আই 5.5 সমর্থন করতে চান তবে ট্যাগনামকে অগ্রাধিকার দেওয়া হয়।এর সাথে দুটি সমস্যা রয়েছে
tagName
:
- আইই এর সমস্ত সংস্করণে, ট্যাগ নোম
!
একটি মন্তব্য নোডে কল করলে ফিরে আসে- পাঠ্য নোডের জন্য,
undefined
ট্যাগনাম আবার নোডনাম ফেরত দেয়#text
nodeName
ইস্যুগুলির নিজস্ব সেট রয়েছে তবে সেগুলি কম গুরুতর:
!
একটি মন্তব্য নোডে কল করা হলে IE 5.5 প্রদান করে । এটি ট্যাগনামের চেয়ে কম ক্ষতিকারক যা IE এর সমস্ত সংস্করণ জুড়ে এই আচরণটি ভোগ করে- IE 5.5
document
উপাদান বা বৈশিষ্ট্যের জন্য নোডনাম সমর্থন করে না । এগুলির কোনওটিই বেশিরভাগ ব্যবহারিক উদ্দেশ্যে উদ্বেগজনক হওয়া উচিত না তবে যেকোন ক্ষেত্রে এটি মাথায় রাখা উচিত- এই সম্পত্তিটি ব্যবহার করার সময় কনকরার মন্তব্য নোড উপেক্ষা করে। তবে আবার, আইপি 5.5 এর সাথে কনকরার কোনও এ-গ্রেড ব্রাউজার নয়
সুতরাং বেশিরভাগ ব্যবহারিক উদ্দেশ্যগুলির
nodeName
জন্য বিস্তৃত পরিসরের দৃশ্যের জন্য সমর্থন এবং সম্ভাব্যতর উন্নত সামনের সামঞ্জস্যের কারণে লেগে থাকে। এটি কোনও মন্তব্য নোডে হিচাপ্প করে না বলে উল্লেখ করবেন না, যা অঘোষিত কোডে ক্রাইপ করার প্রবণতা রয়েছে। আইই 5.5 বা কনকরার সম্পর্কে চিন্তা করবেন না কারণ তাদের বাজারে শেয়ারের পরিমাণ 0%।
ডিওএম কোর অনুচ্ছেদে সেই বৈশিষ্ট্যগুলি সম্পর্কে পড়ুন।
nodeName
একটি সম্পত্তি ইন্টারফেস নোড সংজ্ঞায়িত করা হয়
http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-F68D095
tagName
এলিমেন্ট ইন্টারফেসে সংজ্ঞায়িত একটি সম্পত্তি
http://www.w3.org/TR/DOM-Lelvel-3-Core/core.html#ID-104682815
বিটিডব্লিউ নোড ইন্টারফেসটি ডম গাছের প্রতিটি নোড দ্বারা প্রয়োগ করা হয় ( document
বস্তুটি নিজেই)) এলিমেন্ট ইন্টারফেসটি কেবল ডম গাছের সেই নোডগুলি দ্বারা প্রয়োগ করা হয় যা এইচটিএমএল নথিতে উপাদানগুলিকে উপস্থাপন করে ( nodeType
=== 1 সহ নোড )।
ফায়ারফক্স 33 এবং ক্রোম 38 এ এটিই ঘটে:
এইচটিএমএল:
<div class="a">a</div>
js:
node = e
node.nodeType === 1
node.nodeName === 'DIV'
node.tagName === 'DIV'
node = e.getAttributeNode('class')
node.nodeType === 2
node.nodeName === 'class'
node.tagName === undefined
node = e.childNodes[0]
node.nodeType === 3
node.nodeName === '#text'
node.tagName === undefined
তাই:
nodeType
নোড টাইপ পেতে nodeName
বিরতি : জন্য বিরতিnodeType === 1
tagName
ব্যবহারnodeType === 1
nodeName
বিরতি " কিভাবে nodeType === 1
?