دوستان یه مشکلی که هستش من هر نوع پراپرتی توی جاوا اسکریپت برای یه المنت تعیین میکنم توی کنسول میگه که تعریف نشدس.
ارور:
`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 میرسه ارور میده
سلام دوست عزیز
طبق کدی که قرار دادی زمانی که از getElementsByClassName استفاده میکنی html collection برمیگردونه که شبیه به ارایه هست که باید حلقه بزنی یا از طریق ایندکس به ایتم مورد نظر دسترسی داشته باشی (مثال زیر اولین ایتمی که کلاس swipeLight رو داره استایل top میدیم)
document.getElementsByClassName('swipeLight')[0].style.top = '3px';خب اگه بخوایم رو همشون اجرا شه از quary selector استفاده میکنیم؟
@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';
}شاید پاسخ شما همینجا باشد