آموزش جاوا اسکریپت – دستکاری DOM در جاوا اسکریپت

آموزش جاوا اسکریپت

در این بخش از سری آموزش جاوا اسکریپت قصد داریم شما را با نحوه دستکاری DOM در جاوا اسکریپت آشنا کنیم.

 

دستکاری المان های DOM در جاوا اسکریپت

حالا که در مورد نحوه انتخاب و استایل دهی المان های HTML DOM یاد گرفتید. در این بخش نحوه افزودن یا حذف المان های DOM بصورت داینامیک, دریافت محتوای آن و غیره.. فرا می گیرید.

 

افزودن المان جدید به DOM

به صراحت می توانید یک المان جدید را در سند HTML با استفاده از متد document.createElement() بسازید. این متد یک المان جدید را می سازد اما آن را به DOM اضافه نمی کند; که باید در یک مرحله جداگانه همانند مثال زیر را انجام بدید.

متد appendChild() یک المان جدید را به آخر دیگر فرزندان گره والد مشخص شده اضافه می کند. به هرحال, اگر قصد اضافه کردن یک المان جدید به اول دیگر فرزندان گره والد مشخص شده دارید می توانید از متد insertBefore() استفاده کنید.

 

دریافت یا ست کردن محتوای HTML به DOM

همچنین می توانید محتوای المان HTML را با خصوصویت innerHTML به آسانی دریافت یا ست کنید.

این خصوصیت مقدار محتوای بین تگ های باز و بسته المان را دریافت یا ست می کند.

همانطور که می بینید به چه سادگی می توانید محتوای المان را با innerHTML تغییر بدید اما مشکلی که است این که خصوصیت innerHTML تماما محتوای فعلی المان را جایگزین می کند.

بنابراین اگر قصد اضافه کردن به محتوای فعلی بدون از دست دادن محتوای اصلی المان را دارید می توانید از متد insertAdjacentHTML() استفاده کنید.

این متد دو پارامتر می پذیرد: موقعیت قرار گیری و متن HTML جدید.

موقعیت باید یکی از مقادیر “beforebegin“, “afterbegin“, “beforeend“, “afterend” باشد.

نکته: موقعیت های beforebegin و afterend فقط اگر در درخت DOM باشد و یک المان والد داشته باشد. همچنین زمان قرار دادن HTML در یک صفحه, دقت کنید که ورودی های کاربر برای جلوگیری از حملات XSS پاکسازی شده باشند.

 

حذف المان های DOM

می توانید از متد removeChild() برای حذف یک گره فرزند از DOM استفاده کنید. این متد همچنین گره حذف شده را برگشت می دهد.

همچنین ممکن است که بتوانید المان فرزند را بدون دانستن المان والد حذف کنید. برای اینکار به سادگی المان فرزند را پیدا و از خصوصیت parentNode برای پیدا کردن المان والد استفاده کنید.

این خصوصیت والد گره مشخص شده از درخت DOM را برگشت می دهد.

 

جایگزین کردن المان موجود در DOM

شما به راحتی می توانید یک المان در HTML DOM را با دیگری توسط متد replaceChild() جایگزین کنید.

این متد دو پارامتر را می پذیرد: گره‌ی که باید قرار بگیرید و گره‌ی که باید جایگزین شود.

سینتکس آن بصورت parentNode.replaceChild(newChild, oldChild); است.

 

امیدوارم  از آموزش نحوه دستکاری DOM در جاوا اسکریپت نهایت استفاده را برده باشید.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۵)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. میثم صدیق ۲۷ شهریور ۱۳۹۹

    سلام برای اضافه کردن یک المان با (append) من یک کلید گذشتم اضافه میشم ولی با هر بار کلید کردن اضافه میشود اگر بخواییم یک بار اضافه شود و تکرار نشود چیکار کنیم

    پاسخ
    1. حسن شفیعی ۲۷ شهریور ۱۳۹۹

      سلام. قبل از اجرا کردن دستور append یک شرط if برای بررسی وجود المان بذارید که اگر وجود نداشت اضافه بشه
      var elementExists = document.getElementById(“find-me”);
      if(! elementExists ) append()

      پاسخ
      1. میثم صدیق ۲۷ شهریور ۱۳۹۹

        $(‘#add_product_attribute3’).click(function() {
        let attributesection3=$(‘#attribute_section3’);
        let id =attributesection3.children().length;

        attributesection3.append(
        createNewAttr3({
        id
        })
        );

        لطفا این کد چک میفرمایید

        پاسخ
  2. محمد ۳ خرداد ۱۳۹۹

    ببخشید اگر بخواهیم اینپوتی با تایپ کالر بسازیم باید چه کار کنیم

    پاسخ
    1. حسن شفیعی ۴ خرداد ۱۳۹۹

      سلام. به اینصورت :
      var checkbox = document.createElement(‘input’);
      checkbox.type = “color”;
      و بعد میتونید هرجا خواستید append کنید

      پاسخ
دوره های آموزشی