اضافه و حذف کردن نودها (عناصر HTML)
ایجاد کردن یک عنصر جدید
برای اضافه کردن یک عنصر جدید در مدل DOM، ابتدا باید عنصر را ایجاد کنید و سپس آنرا به یک عنصر موجود، اضافه نمایید.
مثال (ایجاد کردن یک عنصر در JavaScript)
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>
<script>
var para=document.createElement("p");
var node=document.createTextNode("This is new.");
para.appendChild(node);
var element=document.getElementById("div1");
element.appendChild(para);
</script>
توضیح مثال
کد زیر، یک عنصر جدید <p> ایجاد می کند:
برای اضافه کردن متن به عنصر <p>، ابتدا باید یک نود متنی ایجاد نمایید. کد زیر، این کار را انجام می دهد:
سپس باید نود متنی را به عنصر <P> اضافه نمایید:
در آخر باید، عنصر جدید را به یک عنصر موجود اضافه نمایید.
کد زیر، یک عنصر موجود در صفحه را پیدا می کند:
کد زیر، عنصر جدید را به عنصر موجود، اضافه می کند:
حذف کردن یک عنصر موجود
برای حذف کردن یک عنصر HTML، ابتدا باید والد (parent) آنرا مشخص نمایید:
مثال (ایجاد کردن یک عنصر در JavaScript)
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>
<script>
var parent=document.getElementById("div1");
var child=document.getElementById("p1");
parent.removeChild(child);
</script>
توضیح مثال:
کد HTML زیر، شامل یک عنصر <div> همراه با دو فرزند (child) است (دو عنصر <p>):
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>
ابتدا عنصر با شناسه "div1" را به عنوان والد، شناسایی می کنیم: (متغیر یا شیء parent)
سپس عنصر با شناسه "p1" را به عنوان فرزند، شناسایی می کنیم: (متغیر یا شیء child)
در آخر، از شی parent به عنوان والد، شی child به عنوان فرزند، حذف می شود:
توجه: برای حذف کردن یک عنصر در مدل DOM، باید حتماً والد آنرا مشخص نمایید.
راه حل معمول برای مشخص کردن والد، استفاده از خصوصیت parentNode است:
child.parentNode.removeChild(child);
میتونید کد های مربوط به سبد کالاتونو برام بفرستید خیلی دنبالشم اگه میشه بزارید
مرسی از سایت خوبتون
همچنین اگر به فیلم آموزش افزونه Joomshopping نیاز دارید به لینک زیر مراجعه فرمایید:
beyamooz.com/product/joomshopping/%D9%81%DB%8C%D9%84%D9%85-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%D9%81%D8%B1%D9%88%D8%B4%DA%AF%D8%A7%D9%87-%D8%AF%D8%B1-%D8%AC%D9%88%D9%85%D9%84%D8%A7
من میخوام یه کدی بنویسم که وقتی رو یه لینک کلیک کردن تو یه تگ p عددی که اونجا هست با 2000 جمع بشه و نشون داده بشه
هر کاری کردم نشد
میشه این کدو بزارید
خیلی ممنون
[dir=#555]<!DOCTYPE html>
<html>
<body>
<p id="beyamooz" onclick="increment()">0</p>
<script>
function increment() {
var beyamooz = document.getElementById('beyamooz');
var number = parseInt(beyamooz.innerHTML,10);
number=number+2000;
beyamooz.innerHTML = number;
}
</script>
</body>
</html>[/dir]
در کد زیر زمانی که روی لینک Beyamooz.com کلیک می کنید، 2000 واحد به محتوای P اضافه می شود.
[dir=#555]
<!DOCTYPE html>
<html>
<body>
<p id="beyamooz">0</p>
<a onclick="increment()" href="#" >Beyamooz.com</a>
<script>
function increment() {
var beyamooz = document.getElementById('beyamooz');
var number = parseInt(beyamooz.innerHTML,10 );
number=number+2000;
beyamooz.innerHTML = number;
}
</script>
</body>
</html>
[/dir]
من درست این بخش رو متوجه نشدم. اگه امکانش هست بگید که این کار ها دقیقا چه کاربردی دارن؟
وقتی ما می تونیم خیلی راحت داخل تگ های html چیزی رو که دوس داریم بنویسیم، چه کاریه که با جاوا اسکریپت این کارو بکنیم؟
ممنون
فرض کنید می خواهیم توی سایت خودمون یه دکمه قرار بدهیم که وقتی کاربر بر روی اون کلیک کرد، یه عنصر اچ تی ام ال، ایجاد بشه. مثلا یه پاراگراف یا یک عکس یا یه جدول ایجاد بشه و یا یک عکس محو بشه یا اینکه نشون داده بشه. تمام این کارها رو باید با جاوا اسکریپت انجام بدهید. ولی خود html این قابلیت ها رو نداره.
برای توضیح مثال اول متووجه قسمت آخرش نشدم...ما اول اومدیم و یه عنصر ایجاد کردیم . بعدش یه متن بهش اضافه کردیم و تکست رو به عنصر اضافه کردیم...حالا اون قسمت آخرش چیه!؟...چرا دوباره باید به یه چیز دیگه هم اضافه بشه؟1
منطورم اینه که پاراگراف خودش به تنهایی یه المنته...چرا از دیو هم استفاده کردیم!؟
دقت داشته باشید هر محتوایی که درون تگی قرار میگیره، فرزند اون تگ به حساب میاد.
در مثال بالا دلیل خاصی نداره!
ولی در نظر داشته باشید بعضی مواقع نیاز هست که برای کنترل محتوا تگی والد ایجاد شود و تگهای فرزند طبق روال خاصی درون این تگ والد خودشون قرار بگیرن.
ایجاد عناصر اچ تی ام ال در جاوا اسکریپت کار واقعیش چیه و چه مزایایی واسه برنامه نویس سایت داره و گلا چه کار مثبتی انجام میده
لطفا یکم راهنمایی دقیق کنید
یه مثالش که احتمالا باید دیده باشید، تو پر کردن فیلد ثبتنام هست. وقتی که این فیلدها Validate میشن، در صورت بروز خطا، کنار اون کنترل یه متن با رنگ قرمز نشون داده میشه که مثلا فیلد مذکور صحیح پر نشده. همین نمایش متن با رنگ قرمز، حاوی تگ و خصوصیات html هست که توسط جاوااسکریپت درست شده است.
البته قسمت معرف، بصورت JavaScript ی گسترش می یابد.
چرا ایجاد وحذف عناصر را نمیشه در درون function ()
انجام داد من حتی متغیر ها رو خارج از تابع تعریف کردم
ممنون
وقتی با java script عنصری رو اضافه کنیم وقتی صفحه reload بشه اون عنصر از بین نمیره؟
ببخشید یعنی چی که حذف میشه پ برا چی مینویسیم؟ کلا چنذجای دیگه هم در موارد دیگه هم گفته شد با ریلودو .. حدف میشه
یا مثلا داکیومنت رایت هم گفتید باعث میشه کل کدهای اچ تی ام حدف بشن
میشه در مورد این ریلود و ... کمی توضیح بدید
یعنی چی بعد ریلود و قبل ریلود؟
ممنون میشم راهنمایی کنید
reload یعنی هر کاری که باعث Refresh شدن صفحه بشود، مثلا فرض کنید در صفحه ورود اطلاعات کاربر قرار داریم، کاربر بعد از وارد کردن اطلاعات روی دکمه "ثبت" کلیک می کند و این کار باعث Reload یا Refresh شدن صفحه می شود.
باز فرض کنید در صفحه ورود اطلاعات تحصیلی کاربر هستیم و قرار هست که کاربر اطلاعات تحصیلی اش رو وارد کند، "مقطع تحصیلی" و "محل تحصیل" و ... زمانی که برای اولین بار صفحه دیده می شود فقط یک ردیف برای ورود اطلاعات تحصیلی وجود دارد اما با استفاده از جاوااسکریپت و دکمه ای که تعبیه کردیم می تونیم ردیف ها رو به هر تعداد که کاربر احتیاج داشته باشد اضافه کنیم. این مثلا نمونه ای از کاربرد اضافه کردن محتوای دلخواه به صفحه است.