منابع آموزشی و پژوهشی، برای دانشگاه و مدرسه
پشتیبانیانتشار محتوا
CODEX/سطح ۱؛ مرورگر و رویدادjavascriptDOM attributes and properties

ویژگی‌های HTML در جاوااسکریپت

ویژگی HTML و property در جاوااسکریپت را با disabled، getAttribute و dataset بررسی کنید؛ چرا disabled="false" هم دکمه را غیرفعال می‌کند؟

مفهوم به زبان ساده

عنصر HTML هم ویژگی‌های متنی یا attribute دارد و هم propertyهایی که از طریق شیء DOM خوانده می‌شوند. این دو به هم مرتبط‌اند، اما همیشه معنای یکسان یا نوع دادهٔ یکسان ندارند. getAttribute مقدار متنی ویژگی را می‌خواند و در نبود آن null می‌دهد. setAttribute ویژگی را تنظیم می‌کند و removeAttribute آن را برمی‌دارد. برای بسیاری از وضعیت‌های جاری کنترل، property مناسب روشن‌تر است.

در مثال، disabled یک ویژگی بولی HTML است. حضور این ویژگی برای غیرفعال‌بودن کافی است؛ متن false آن را خاموش نمی‌کند. برای فعال‌کردن دوباره، ویژگی را حذف می‌کنیم یا property مربوط را false قرار می‌دهیم. این قاعده را به همهٔ ویژگی‌ها، مانند aria-expanded که مقدار متنی مشخص دارد، تعمیم ندهید. نوع ویژگی و قرارداد رابط را جدا بشناسید.

ویژگی‌های data-* راهی برای نگهداری دادهٔ کوچک وابسته به عنصرند. از dataset می‌توان آن‌ها را خواند، اما مقدارها متن هستند؛ تعداد ۳ پس از ثبت به شکل متن خوانده می‌شود. دادهٔ DOM منبع معتبر قیمت، مجوز یا مالکیت نیست و کاربر می‌تواند آن را تغییر دهد. در تمرین، یک شناسهٔ ردیف ذخیره کنید و تفاوت آن با دادهٔ کامل مدل برنامه را توضیح دهید.

کجا به کار می‌آید؟

  • تنظیم وضعیت دکمه و خواندن اطلاعات وابسته به یک ردیف
  • تفکیک ویژگی متنی HTML از مقدار جاری کنترل در DOM

از تعریف تا یک مثال واقعی

javascript
const button = document.createElement('button');
button.setAttribute('disabled', 'false');
console.log(button.disabled);
button.removeAttribute('disabled');
console.log(button.disabled);
button.dataset.count = '3';
console.log(typeof button.dataset.count);
console.log(button.getAttribute('data-count'));
console.log(button.getAttribute('title') === null);
خروجی مورد انتظار
true
false
string
3
true

این مثال چطور کار می‌کند؟

  1. حضور disabled حتی با متن false، دکمه را غیرفعال می‌کند.

  2. حذف ویژگی باعث می‌شود disabled برابر false شود.

  3. dataset متن نگه می‌دارد؛ ویژگی title که تنظیم نشده، null است.

اشتباه رایج

disabled="false" راه فعال‌کردن دکمه نیست. همچنین مقدار dataset را عدد یا دادهٔ قابل اعتماد فرض نکنید؛ تبدیل و اعتبارسنجی باید صریح باشد.

این را به خاطر بسپارید

attribute و property را بر اساس معنای کنترل انتخاب کنید؛ ویژگی بولی HTML با رشتهٔ بولی یکسان نیست.

بازگشت به نقشهٔ مفاهیم
یکجا انتخاب کن، راحت‌تر دریافت کن

انتخاب‌های من ۰ منبع

مجموعهٔ مطالعه‌ات را بساز.

کنار مقاله‌ها «انتخاب» را بزنید تا چند فایل را با هم دریافت کنید.

انتخاب مقاله‌های رایگان