راکت
حل شده

متوجه نشدن اشکال کد

3 پاسخ

دوستان یه مشکلی که هستش من هر نوع پراپرتی توی جاوا اسکریپت برای یه المنت تعیین میکنم توی کنسول میگه که تعریف نشدس.
ارور:

`swipe.js:23 Uncaught TypeError: Cannot set properties of undefined (setting 'top') at swipe11 (swipe.js:23:65) at HTMLButtonElement.onclick (?servece=australia&servece=australia&fname=&servece=australia&fname=&lname=&phone=&address=:14:61)`

کدم:

var swipe = 0; // 0 => lightmode & 1 => DarkMode

function swipe(){
    console.log('ok');
    if(swipe === 0){
        document.getElementsByClassName('swipeLight').style.top = '3px';
    }
}

کنسول ok رو لاگ میگیره ولی به if میرسه ارور میده

ثبت پرسش جدید

پاسخ‌ها

3
T Game
T Game
@TGame
بهترین پاسخ

سلام دوست عزیز
طبق کدی که قرار دادی زمانی که از getElementsByClassName استفاده میکنی html collection برمیگردونه که شبیه به ارایه هست که باید حلقه بزنی یا از طریق ایندکس به ایتم مورد نظر دسترسی داشته باشی (مثال زیر اولین ایتمی که کلاس swipeLight رو داره استایل top میدیم)

document.getElementsByClassName('swipeLight')[0].style.top = '3px';
یاصر قدیمی
یاصر قدیمی
@OldYaser

تخصص: توسعه دهنده فرانت اند و جوجه توسعه دهنده بک اند

خب اگه بخوایم رو همشون اجرا شه از quary selector استفاده میکنیم؟
@TGame

T Game
T Game
@TGame

سلامی دوباره
گفتم دیگه برای اینکه رو همه المنت ها کاری انجام بدی باید حلقه بزنی یا از ایندکس به المنت دسترسی داشته باشی. querySelector برای زمانی هستش که بخوایم به یک المنت دسترسی داشته باشیم ( اگر چند المنت با شناسه یکسان مثلا کلاس داشته باشیم در اون صورت اولین المنت رو برمیگردونه ) برای اینکه رو همه دسترسی داشته باشی از querySelectorAll استفاده میکنی. خلاصه یه سرچ بزن در گوگل متوجه تفاوت هاشون میشی
مثالش

const swipeLight = document.getElementsByClassName('swipeLight');
for (let i = 0; i < swipeLight.length; i++) {
  swipeLight[i].style.top = '3px';
}

یا میتونی از querySelectorAll استفاده کنی مثالش

const swipeLight = document.querySelectorAll('.swipeLight');
for (let i = 0; i < swipeLight.length; i++) {
  swipeLight[i].style.top = '3px';
}

شاید پاسخ شما همین‌جا باشد

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

ورود یا ثبت‌نام