توضیحات

در این جلسه به ایجاد و افزودن element (تگ) در جاوااسکریپت از دوره آموزش رایگان javascript (جاوا اسکریپت) پروژه محور میپردازیم.


HTML CSS طراحی وب javascript ecmascript جاوا اسکریپت اکما اسکریپت جاوااسکریپت

مدرس دوره علی شیخ
مدت دوره 10:20:49
تعداد ویدیو 76

وضعیت دوره : کامل شده
قیمت دوره : رایگان

کامنت های ارزشمند شما:

برای ارسال کامنت ابتدا باید وارد سایت شوید

  • سلام و وقت بخیر مجدد استاد یه سوال دیگه هم داشتم متد appendChild() همان طور که فرمودید یک Node را به المان اضافه میکند اما برای اگر بخواهیم یک محتوای متنی به یک المان اختصاص بدیم چون appendChild فقط دیتا تایپ Node را اختصاص میده نمیتونیم از رشته استفاده کنیم بنابراین از متد createTextNode() که یک text node میسازه استفاده کردیم من از یک خروجی این متد لاگ گرفتم و توی w3 هم راجع بهش خوندم اما نمیدونم فرقش با رشته چیه؟ اینکه اون محتوای متنی که نود شده تفاوت اصلیش با رشته چیه؟

    • سلام وقت بخیر.
      ببینید اولین موضوع اینکه DOM با زبان جاوااسکریپت فرق داره، مرورگر یک محیط اجرای برای کد های js هست در سمت فرانت و یکسری قابلیت ها خودش را داره مثله DOM و یکسری متد ها داره برای کار کردن باهاشون که با زبان js میتوان ازشون استفاده کرد. پس DOM مربوط یا ماله زبان js نیست.
      حالا رشته ای که توسط js ایجاد میشه یه مقدار متنی هست که توی حافظه ذخیره میشه، اما DOM ماله مروگر هست و روند و جنس خودش را داره مثلا <h1>Hello</h1> به شکل یک node توی DOM هست element این node میشه h1 و text این node میشه Hello حالا برا تغییرات توی این node متد های مخصوص خودش رو داره و نمیتوان صرفا یک رشته از جنس js داخلش قرار داد و باید رشته ای از جنس DOM بهش داد چرا که این تگ بخشی از DOM هست و متد createTextNode یک text از جنس node برمیگردونه که بخشی از DOM هست.
      امیداورم تونسته باشم منظورم رو برسونم

    • خیلی ممنون از شما بله من از قبل راجع به نوع داده node تحقیق کرده بودم و خیلی توضیحی که دادید مفید بود من نمیدونستم که مبحث DOM با JS جدا هستند و البته میدونستم که هر المان در سند ما یک element node هست اما چیزی که در حقیقت برام سوال شده بود این بود که فکر میکردم هر رشته یا محتوای متنی داخل خود سند یک text node هست توی این جلسه متوجه شدم که فرق دارن و تفاوتشون رو نمیدونستم پس الان طبق توضیحاتی که فرمودید اگر درست فهمیده باشم تنها دلیلی که باعث شد که از متد createTextNode() استفاده کنیم به خاطر اینکه DOM یک text node می پذیره و با رشته js کار نمیکنه

    • سلام مجدد جناب شیخ ببخشید که زیاد سوال میپرسم اما من به طور خلاصه و دقیق سوال این هست که دقیقا text node چی هست من دقیق ترین جوابی که راجع بهش پیدا کردم این بود Text in an HTML document is represented by instances of the constructor function, which produces text nodes. When an HTML document is parsed, the text mixed in among the elements of an HTML page is converted to text nodes. طبق این توضیح text node همان محتوای های متنی توی سند ما هست حالا بازم گفتم از شما بپرسم شاید اینطوری بهتر منظور دقیقم رو برسونم

    • سلام وقت بخیر.
      بله همین هست توی کامنت های قبلی یک مثال هم زدم

  • سلام جناب شیخ وقتتون بخیر یک سوال داشتم البته راجع به جاوا اسکریپت نیست وقتی یک مودال بوت استرپ میسازیم و این مودال داخل چندین تگ Parent هست و وقتی باز میشه ویژگی backdrop اجازه نمیده به مودال دسترسی داشته باشیم اما وقتی مودال رو میاریم بیرون به طوری که فقط تگ body به عنوان parent باشه اون موقع مشکل بر طرف میشه من هرچی داخل گوگل از قدیم تا الان که اینترنت ملی هست دلیلش رو نفهمیدم چی هست گفتم از شما هم بپرسم

    • سلام وقت بخیر.
      بصورت کای که مودال رو مستقیما توی تگ body قرار میدن وقتی چندین parent داشته باشه ممکنه یکسری ویژگی والد ها تاثیر بزاره مثله relative یا overflow یا filter و یا حتی flex یا z-index باشه بخاطر همین مستقیما توی تگ body قرار میدن