При разработке веб -приложений, особенно программ Web2.0, часто необходимо получить элемент на странице, а затем обновить стиль, контент и т. Д. Элемента. Как обновить элементы - первая проблема, которая будет решена. Приятно, что есть много способов получить узлы с использованием JavaScript. Вот краткое изложение (следующие методы были проверены в IE7 и Firefox 2.0.0.11):
1. Пройти через узел документа на верхнем уровне:
(1) Document.getElementById (elementId): этот метод может точно получить необходимые элементы через идентификатор узла, который является относительно простым и быстрым методом. Если страница содержит несколько узлов с одинаковым идентификатором, то возвращается только первый узел.
В настоящее время появились несколько библиотек JavaScript, такие как прототип и мутоусы, которые обеспечивают более простой метод: $ (id), а параметр по -прежнему остается идентификатором узла. Этот метод можно рассматривать как
Еще один способ написать Document.getElementById (), но функция $ () является более мощной. Для конкретного использования, пожалуйста, обратитесь к их соответствующим документам API.
(2) Document.GetElementsByName (ElementName): этот метод получает узел через имя узла. Из имени можно видеть, что этот метод возвращает не элемент узла, а массив узлов с тем же именем. Затем мы можем пройти через атрибут узла, чтобы получить цикл, чтобы определить, является ли это необходимым узлом.
Например: в HTML флажок и радио используют одно и то же значение атрибута имени для идентификации элементов в группе. Если мы хотим получить выбранный элемент сейчас, мы сначала получаем перетасованный элемент, а затем цикл, чтобы определить, является ли значение проверенного атрибута узла.
(3) document.getElementsbytagname (Tagname): этот метод получает узел через тег узла, и метод также возвращает массив, например:
document.getElementsbytagname ('a') вернет все узлы гиперссылки на странице. Перед получением узла вы обычно знаете тип узла, поэтому использование этого метода является относительно простым. Но недостаток также очевиден, то есть возвращенный массив может быть очень большим, что будет тратить много времени. Итак, этот метод бесполезен? Конечно, нет. Этот метод отличается от двух вышеупомянутых. Это не запатентованный метод узлов документов. Другие узлы также могут быть применены, как упомянуто ниже.
2. Пройдите через родительский узел:
(1) ParentObj.firstchild: этот метод можно использовать, если узел является первым дочерним детьми известного узла (ParentObj). Это свойство может использоваться рекурсивно, что означает, что оно поддерживается
parentObj.firstchild.firstchild.firstchild ..., так что вы можете получить более глубокие узлы.
(2) ParentObj.lastchild: Очевидно, что это свойство является последним детьми узел известного узла (ParentObj). Как и FirstChild, его можно использовать рекурсивно.
Используя, если мы объединим их, мы достигнем более захватывающего эффекта, а именно: parentObj.firstchild.lastchild.lastchild ...
(3) ParentObj.ChildNodes: Получить массив детских узлов известных узлов, а затем вы можете найти необходимые узлы через петли или индексы.
Примечание. После тестирования было обнаружено, что массив прямых детских узлов получается на IE7, в то время как массив детских узлов получен на Firefox2.0.0.11 - все дочерние узлы, то есть детские узлы, включая детские узлы.
(4) ParentObj.Children: Получите прямую массив детских узлов известных узлов.
Примечание. После тестирования на IE7 эффект такой же, как и Childnodes, но Firefox 2.0.0.11 не поддерживает его. Вот почему я хочу использовать разные стили из других методов. Поэтому не рекомендуется использовать.
(5) parentObj.getElementsbytagname (Tagname): метод использования не будет повторен, он возвращает массив детских узлов известного узла с указанным значением среди всех дочерних узлов известного узла. Например:
parentObj.getElementsbytagname ('a') возвращает все гиперссылки в известных детских узлах.
3. Получить через соседние узлы:
(1) ountobordode.previoussibling: Получите предыдущий узел известного узла (соседь). Это свойство, кажется, рекурсивно используется, как и Firstchild и LastChild в предыдущих.
(2) outbornode.nextibling: Получите следующий узел известного узла (yousebournode), который также поддерживает рекурсию.
4. Получить через детские узлы:
(1) ChildNode.parentNode: Получите родительский узел известного узла.
Методы, упомянутые выше, являются лишь некоторыми основными методами. Если вы используете библиотеки JavaScript, такие как прототип, вы также можете получить другие различные методы, такие как получение класса с помощью узлов и т. Д. Однако, если вышеупомянутые методы можно гибко использовать, я считаю, что большинство процедур должны иметь возможность справиться с.