تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ عیلرضا شهریاری
پیمایش در Dom
جامعه جاوا اسکریپت ایجاد شده در ۲۱ بهمن ۱۴۰۰

چرا توی کد‌های زیر وقتی از firstChild.nodeValue

و از childNodes[0].nodeValue

به جای innerHTML المنت'id02' استفاده میکنم کد هام کار نمیکنه؟؟ (به جای innerHTML المنت'id01' کار میکنه)

html>
<html>
<body>
<h1 id="id01">My First Pageh1>
<p id="id02">p>
<script>
document.getElementById("id02").childNodes[0].nodeValue = document.getElementById("id01").firstChild.nodeValue;
script>
body>
html>

سلام ، امیدوارم حالتون خوب باشه .

تو کدی که فرستادی مشکل اینه که شما هیچ node برای المان 'id02' ایجاد نکردید و وقتی می‌خواید به ایندکس 0 دسترسی داشته باشید چیزی پیدا نمیشه (چون هیچ whitespace یا کاراکتر دیگه یا المنت دیگه ندارید توش و هیچ node تشکیل نشده)

اگر یک کارکتر یا خط جدید یا یک المنت دیگه بین 'id02' بذارید کدتون کار میکنه

مثلا مثل کد زیر :

<h1 id="id01">My First Pageh1>
    <p id="id02">
     
    p>
    <script>
      document.getElementById(
        "id02"
      ).childNodes[0].nodeValue = document.getElementById(
        "id01"
      ).firstChild.nodeValue;
    

در کل بهتره برای دسترسی به المان‌ها و مقادیرشون تا حد ممکن از این شیوه استفاده نکنید چون هم کد شلوغ و خوانایی کم میشه و گاهی مشکلات ظاهرا عجیبی پیش میاد :)

موفق باشید.


بهترین پاسخ
علیرضا ایمانی ۲۲ بهمن ۱۴۰۰، ۰۹:۰۷