getAttributeআহরণ অ্যাট্রিবিউট একটি DOM উপাদান সময়, el.idআহরণ সম্পত্তি এই DOM উপাদান আছে। তারা একই নয়।
বেশিরভাগ সময়, ডিওএম বৈশিষ্ট্যগুলি বৈশিষ্ট্যের সাথে সিঙ্ক্রোনাইজ করা হয়।
তবে সিঙ্ক্রোনাইজেশন একই মানের গ্যারান্টি দেয় না । একটি ক্লাসিক উদাহরণ একটি অ্যাঙ্কর উপাদান এর মধ্যে el.hrefএবং el.getAttribute('href')জন্য।
উদাহরণ স্বরূপ:
<a href="/" id="hey"></a>
<script>
var a = document.getElementById('hey')
a.getAttribute('href')
a.href
</script>
এই আচরণটি ঘটে কারণ ডাব্লু 3 সি অনুসারে , href সম্পত্তিটি অবশ্যই একটি সুসংহত লিঙ্ক হওয়া উচিত। বেশিরভাগ ব্রাউজার এই মানটিকে সম্মান করে (অনুমান করেন না কে?)
inputএর checkedসম্পত্তি সম্পর্কে আরও একটি মামলা রয়েছে । করে DOM সম্পত্তি আয় trueবা falseঅ্যাট্রিবিউট স্ট্রিং ফেরৎ যখন "checked"বা একটি খালি স্ট্রিং।
এবং তারপরে, এমন কিছু বৈশিষ্ট্য রয়েছে যা কেবলমাত্র একমুখী সিঙ্ক্রোনাইজ করা হয় । সর্বোত্তম উদাহরণ হ'ল valueএকটি inputউপাদানটির সম্পত্তি । DOM বৈশিষ্ট্যের মাধ্যমে এর মান পরিবর্তন করা বৈশিষ্ট্য পরিবর্তন করবে না (সম্পাদনা করুন: আরও নির্ভুলতার জন্য প্রথম মন্তব্যটি পরীক্ষা করুন)।
এই কারণগুলির কারণে, আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি DOM বৈশিষ্ট্যগুলি ব্যবহার করুন , বৈশিষ্ট্যগুলি নয়, কারণ ব্রাউজারগুলির মধ্যে তাদের আচরণের পার্থক্য রয়েছে।
বাস্তবে, কেবলমাত্র দুটি ক্ষেত্রেই আপনাকে বৈশিষ্ট্যগুলি ব্যবহার করতে হবে:
- একটি কাস্টম এইচটিএমএল বৈশিষ্ট্য, কারণ এটি কোনও ডিওএম বৈশিষ্ট্যের সাথে সিঙ্ক হয় না।
- কোনও অন্তর্নির্মিত এইচটিএমএল অ্যাট্রিবিউট অ্যাক্সেস করতে, যা সম্পত্তি থেকে সিঙ্ক হয় না এবং আপনি নিশ্চিত হন যে আপনাকে এট্রিবিউটটি প্রয়োজন (উদাহরণস্বরূপ,
valueকোনও inputউপাদানটির মূল )।
আপনি যদি আরও বিশদ ব্যাখ্যা চান তবে আমি দৃ strongly়ভাবে আপনাকে এই পৃষ্ঠাটি পড়ার পরামর্শ দিচ্ছি । এটি আপনাকে কয়েক মিনিট সময় নেবে তবে আপনি তথ্যের দ্বারা আনন্দিত হবেন (যা আমি এখানে সংক্ষেপে বলেছি))