Стандарт DOM передбачає кілька засобів пошуку елемента. Це методи getElementById. getElementsByTagName і getElementsByName.
Найзручніший спосіб знайти елемент в DOM - це отримати його по id. Для цього використовується виклик document.getElementById (id)
Наприклад, наступний код змінить колір тексту на блакитний в div 'е c id = "dataKeeper":
Наступний спосіб - це отримати всі елементи з певним тегом, і серед них шукати потрібний. Для цього служить document.getElementsByTagName (tag). Вона повертає масив з елементів, що мають такий тег.
Наприклад, можна отримати другий елемент (нумерація в масиві йде з нуля) з тегом li:
Що цікаво, getElementsByTagName можна викликати не тільки для document. але і взагалі для будь-якого елемента, у якого є тег (НЕ текстового).
При цьому будуть знайдені тільки ті об'єкти, які знаходяться під цим елементом.
Наприклад, наступний виклик отримує список елементів LI. знаходяться всередині першого тега div:
Виклик elem.getElementsByTagName ( '*') поверне список з усіх дітей вузла elem в порядку їх обходу.
Наприклад, на такому DOM:
Виведе послідовність: ol1, li1, li2.
Метод document.getElementsByName (name) повертає всі елементи, у яких ім'я (атрибут name) дорівнює даному.
Він працює тільки з тими елементами, для яких в специфікації явно передбачений атрибут name. це form. input. a. select. textarea і ряд інших, більш рідкісних.
Метод document.getElementsByName не працюватиме з іншими елементами типу div. p і т.п.
Також є метод getElementsByClassName для пошуку елементів за класом, але він зовсім не працює в IE, тому в чистому вигляді їм ніхто не користується.
Часта помилка пов'язана з відсутністю літери s в назві методу getElementById. в той час як в інших методах ця буква є: getElements ByName.
Правило тут просте: один елемент - Element. багато - Elements. Всі методи * Elements * повертають список вузлів.
- Версія для друку
Я б на вашому місці не говорив би так про ослика, він вніс великий внесок в розвиток інтернет-технологій. Для і взагалі, я сам виріс на IE 3 і тому мені він рідніше, ніж всі інші. Ну а які ви програмісти, якщо навіть не враховуєте всі браузера, а говорите "геть його". Така врахувати програміста, щоб враховувати всі. Бо нехрен лестощі в цю справу взагалі.
Повинен бути стандарт для програміста - одна мова, які все браузери розуміють чітко і однозначно. А писати веб розробникам для кожного браузера своїм кодом - це маразм. Це все одно, що писати програму під всі операційні системи відразу.
Тут відразу кілька помилок:
Перша і найочевидніша - функція writerel описана, але ніде не викликається
Таким чином, у вашому випадку потрібно перенести тег script як мінімум нижче тега div. А якщо планується додавати ще елементи в код, то надійніше всього буде розмістити тег script в самому кінці тіла документа, перед закриває тегом body.
(Насправді це не повноцінний масив Array, а подібний йому об'єкт, але це вже особливості внутрішнього устрою мови, звертатися з ним все одно потрібно як зі звичайним масивом.)
Підводячи підсумок - у вашому випадку код повинен виглядати як мінімум так:
Добрий день.
Підкажіть будь ласка. Потрібно для посилань в параграфі (p) застосувати клас "lightbox"
Використовую поки такий код:
var els = document.getElementsByTagName ( 'a');
for (var i = 0; i
А що буде, якщо скопіювати (клонувати) вузол, який містить ID?
У копії не д.б. ID або все-таки ID стане не унікальним?