JavaScript-ში ელემენტების მასივზე მიმმართველი შეცდომა
ზოგჯერ დამწყები პროგრამისტები ცდილობენ იმუშაონ ელემენტების მასივთან ისე, თითქოს მათ აქვთ მხოლოდ ერთი ელემენტი. მოდით ვნახოთ, რაში მდგომარეობს ამ შეცდომის არსი.
მოდით მოცემულია აბზაცები:
<p>1</p>
<p>2</p>
<p>3</p>
დავუშვათ, რომ ვინმე პროგრამისტმა გადაწყვიტა ჩაწეროს თითოეული აბზაცის ტექსტში ერთი და იგივე მნიშვნელობა. ამისათვის მან მიიღო მითითებები ამ ელემენტებზე ცვლადში:
let elems = document.querySelectorAll('p');
შემდეგ ჩვენმა პროგრამისტმა შეცდომით აიღო და მიმართა ჩვენს ცვლადს ისე, თითქოს იქ დევს ერთი ელემენტი, და არა მასივი. შედეგად, აბზაცების ტექსტი არ შეიცვლება, მაგრამ, დამახასიათებელია, რომ შეცდომაც კონსოლში არ იქნება:
elems.textContent = '!';
სწორი გადაწყვეტა იქნება მასივის ელემენტების ციკლით გადატანა და ცალ-ცალკე თითოეული ელემენტისთვის შესრულებული იქნას საჭირო ოპერაცია:
for (let elem of elems) {
elem.textContent = '!';
}