Что такое код domelement >set_attribute


Содержание

FPublisher

Web-технологии: База знаний

Документация PHP

DomElement->set_attribute()

(No version information available, might be only in CVS)

DomElement->set_attribute() — Sets the value of an attribute

Описание

DomAttribute set_attribute ( string $name , string $value )

Sets an attribute with name name to the given value .

Список параметров

The name of the attribute. If this attribute doesn’t exist, it will be created.

The value of the attribute.

Возвращаемые значения

Returns the old DomAttribute node, or the new one if you are creating the attribute for the first time.

Примеры

Пример #1 Setting an attribute

= domxml_new_doc ( «1.0» );
$node = $doc -> create_element ( «para» );
$newnode = $doc -> append_child ( $node );
$newnode -> set_attribute ( «align» , «left» );
?>

Migrating to PHP 5

Смотрите также

Последние поступления:

ТехЗадание на Землю

Размещена 14 марта 2020 года

Пpоект Genesis (из коpпоpативной пеpеписки)

Шпаргалка по работе с Vim

Размещена 05 декабря 2020 года

Vim довольно мощный редактор, но работа с ним не всегда наглядна.
Например если нужно отредактировать какой-то файл например при помощи crontab, без знания специфики работы с viv никак.

Ошибка: Error: Cannot find a val >Размещена 13 сентабря 2020 года

Если возникает ошибка на centos 5 вида
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/

Linux Optimization

Размещена 30 июля 2012 года

Атрибуты и DOM-свойства

Материал на этой странице устарел, поэтому скрыт из оглавления сайта.

Более новая информация по этой теме находится на странице https://learn.javascript.ru/dom-attributes-and-properties.

При чтении HTML браузер генерирует DOM-модель. При этом большинство стандартных HTML-атрибутов становятся свойствами соответствующих объектов.

Например, если тег выглядит как , то у объекта будет свойство body. .

Но это преобразование – не один-в-один. Бывают ситуации, когда атрибут имеет одно значение, а свойство – другое. Бывает и так, что атрибут есть, а свойства с таким названием не создаётся.

Если коротко – HTML-атрибуты и DOM-свойства обычно, но не всегда соответствуют друг другу, нужно понимать, что такое свойство и что такое атрибут, чтобы работать с ними правильно.

Свои DOM-свойства

Ранее мы видели некоторые встроенные свойства DOM-узлов. Но, технически, никто нас ими не ограничивает.

Узел DOM – это объект, поэтому, как и любой объект в JavaScript, он может содержать пользовательские свойства и методы.

Например, создадим в document.body новое свойство и запишем в него объект:

Можно добавить и новую функцию:

Нестандартные свойства и методы видны только в JavaScript и никак не влияют на отображение соответствующего тега.

Обратим внимание, пользовательские DOM-свойства:

  • Могут иметь любое значение.
  • Названия свойств чувствительны к регистру.
  • Работают за счёт того, что DOM-узлы являются объектами JavaScript.

Атрибуты

Элементам DOM, с другой стороны, соответствуют HTML-теги, у которых есть текстовые атрибуты.

Конечно, здесь речь именно об узлах-элементах, не о текстовых узлах или комментариях.

Доступ к атрибутам осуществляется при помощи стандартных методов:

  • elem.hasAttribute(name) – проверяет наличие атрибута
  • elem.getAttribute(name) – получает значение атрибута
  • elem.setAttribute(name, value) – устанавливает атрибут
  • elem.removeAttribute(name) – удаляет атрибут

Эти методы работают со значением, которое находится в HTML.

Также все атрибуты элемента можно получить с помощью свойства elem.attributes , которое содержит псевдо-массив объектов типа Attr.

В отличие от свойств, атрибуты:

  • Всегда являются строками.
  • Их имя нечувствительно к регистру (ведь это HTML)
  • Видны в innerHTML (за исключением старых IE)

Рассмотрим отличия между DOM-свойствами и атрибутами на примере HTML-кода:

Пример ниже устанавливает атрибуты и демонстрирует их особенности.

При запуске кода выше обратите внимание:

  1. getAttribute(‘About’) – первая буква имени атрибута About написана в верхнем регистре, а в HTML – в нижнем, но это не имеет значения, так как имена нечувствительны к регистру.
  2. Мы можем записать в атрибут любое значение, но оно будет превращено в строку. Объекты также будут автоматически преобразованы.
  3. После добавления атрибута его можно увидеть в innerHTML элемента.
  4. Коллекция attributes содержит все атрибуты в виде объектов со свойствами name и value .

Когда полезен доступ к атрибутам?

Когда браузер читает HTML и создаёт DOM-модель, то он создаёт свойства для всех стандартных атрибутов.

Например, свойства тега ‘A’ описаны в спецификации DOM: HTMLAnchorElement.

Например, у него есть свойство «href» . Кроме того, он имеет «id» и другие свойства, общие для всех элементов, которые описаны в спецификации в HTMLElement.

Все стандартные свойства DOM синхронизируются с атрибутами, однако не всегда такая синхронизация происходит 1-в-1, поэтому иногда нам нужно значение именно из HTML, то есть атрибут.

Рассмотрим несколько примеров.

Ссылка «как есть» из атрибута href

Синхронизация не гарантирует одинакового значения в атрибуте и свойстве.

Для примера, посмотрим, что произойдёт с атрибутом «href» при изменении свойства:

Это происходит потому, что атрибут может быть любым, а свойство href , в соответствии со спецификацией W3C, должно быть полной ссылкой.

Стало быть, если мы хотим именно то, что в HTML, то нужно обращаться через атрибут.

Кстати, есть и другие атрибуты, которые не копируются в точности. Например, DOM-свойство input.checked имеет логическое значение true/false , а HTML-атрибут checked – любое строковое, важно лишь его наличие.

Илон Маск рекомендует:  Что такое код fbsql_create_db

Работа с checked через атрибут и свойство:

Исходное значение value

Изменение некоторых свойств обновляет атрибут. Но это скорее исключение, чем правило.

Чаще синхронизация – односторонняя: свойство зависит от атрибута, но не наоборот.

Например, при изменении свойства input.value атрибут input.getAttribute(‘value’) не меняется:

То есть, изменение DOM-свойства value на атрибут не влияет, он остаётся таким же.

А вот изменение атрибута обновляет свойство:

Эту особенность можно красиво использовать.

Получается, что атрибут input.getAttribute(‘value’) хранит оригинальное (исходное) значение даже после того, как пользователь заполнил поле и свойство изменилось.

Например, можно взять изначальное значение из атрибута и сравнить со свойством, чтобы узнать, изменилось ли значение. А при необходимости и перезаписать свойство атрибутом, отменив изменения.

Классы в виде строки: className

Атрибуту «class» соответствует свойство className .

Так как слово «class» является зарезервированным словом в JavaScript, то при проектировании DOM решили, что соответствующее свойство будет называться className .

Кстати, есть и другие атрибуты, которые называются иначе, чем свойство. Например, атрибуту for ( ) соответствует свойство с названием htmlFor .

Классы в виде объекта: classList

Атрибут class – уникален. Ему соответствует аж целых два свойства!

Работать с классами как со строкой неудобно. Поэтому, кроме className , в современных браузерах есть свойство classList .

Свойство classList – это объект для работы с классами.

Оно поддерживается в IE начиная с IE10, но его можно эмулировать в IE8+, подключив мини-библиотеку classList.js.

  • elem.classList.contains(«class») – возвращает true/false , в зависимости от того, есть ли у элемента класс class .
  • elem.classList.add/remove(«class») – добавляет/удаляет класс class
  • elem.classList.toggle(«class») – если класса class нет, добавляет его, если есть – удаляет.

Кроме того, можно перебрать классы через for , так как classList – это псевдо-массив.

Нестандартные атрибуты

У каждого элемента есть некоторый набор стандартных свойств, например для это будут href , name , а для это будут src , alt , и так далее.

Точный набор свойств описан в стандарте, обычно мы более-менее представляем, если пользуемся HTML, какие свойства могут быть, а какие – нет.

Для нестандартных атрибутов DOM-свойство не создаётся.

Свойство является стандартным, только если оно описано в стандарте именно для этого элемента.

То есть, если назначить элементу атрибут href , то свойство img.href от этого не появится. Как, впрочем, и если назначить ссылке атрибут alt :

Нестандартные атрибуты иногда используют для CSS.

В примере ниже для показа «состояния заказа» используется атрибут order-state :

Почему именно атрибут? Разве нельзя было сделать классы .order-state-new , .order-state-pending , order-state-canceled ?

Конечно можно, но манипулировать атрибутом из JavaScript гораздо проще.

Например, если нужно отменить заказ, неважно в каком он состоянии сейчас – это сделает код:

Для классов – нужно знать, какой класс у заказа сейчас. И тогда мы можем снять старый класс, и поставить новый:

…То есть, требуется больше исходной информации и надо написать больше букв. Это менее удобно.

Проще говоря, значение атрибута – произвольная строка, значение класса – это «есть» или «нет», поэтому естественно, что атрибуты «мощнее» и бывают удобнее классов как в JS так и в CSS.

Свойство dataset, data-атрибуты

С помощью нестандартных атрибутов можно привязать к элементу данные, которые будут доступны в JavaScript.

Как правило, это делается при помощи атрибутов с названиями, начинающимися на data- , например:

Стандарт HTML5 специально разрешает атрибуты data-* и резервирует их для пользовательских данных.

При этом во всех браузерах, кроме IE10-, к таким атрибутам можно обратиться не только как к атрибутам, но и как к свойствам, при помощи специального свойства dataset :

Обратим внимание – название data-user-location трансформировалось в dataset.userLocation . Дефис превращается в большую букву.

Полифил для атрибута hidden

Для старых браузеров современные атрибуты иногда нуждаются в полифиле. Как правило, такой полифил включает в себя не только JavaScript, но и CSS.

Этот атрибут должен прятать элемент, действие весьма простое, для его поддержки в HTML достаточно такого CSS:

Если запустить в IE11- пример выше, то

Это потому что CSS «не видит» присвоенное свойство, нужно синхронизировать его в атрибут.

Вот так – уже работает:

«Особенности» IE8

Если вам нужна поддержка этих версий IE – есть пара нюансов.

Во-первых, версии IE8- синхронизируют все свойства и атрибуты, а не только стандартные:

При этом даже тип данных не меняется. Атрибут не становится строкой, как ему положено.

Ещё одна некорректность IE8-: для изменения класса нужно использовать именно свойство className , вызов setAttribute(‘class’, . ) не сработает.

Вывод из этого довольно прост – чтобы не иметь проблем в IE8, нужно использовать всегда только свойства, кроме тех ситуаций, когда нужны именно атрибуты. Впрочем, это в любом случае хорошая практика.

Итого

  • Атрибуты – это то, что написано в HTML.
  • Свойство – это то, что находится внутри DOM-объекта.

Таблица сравнений для атрибутов и свойств:

Свойства Атрибуты
Любое значение Строка
Названия регистрозависимы Не чувствительны к регистру
Не видны в innerHTML Видны в innerHTML

Синхронизация между атрибутами и свойствами:

  • Стандартные свойства и атрибуты синхронизируются: установка атрибута автоматически ставит свойство DOM. Некоторые свойства синхронизируются в обе стороны.
  • Бывает так, что свойство не совсем соответствует атрибуту. Например, «логические» свойства вроде checked , selected всегда имеют значение true/false , а в атрибут можно записать произвольную строку.Выше мы видели другие примеры на эту тему, например href .
  • Нестандартный атрибут (если забыть глюки старых IE) никогда не попадёт в свойство, так что для кросс-браузерного доступа к нему нужно обязательно использовать getAttribute .
  • Атрибуты, название которых начинается с data- , можно прочитать через dataset . Эта возможность не поддерживается IE10-.

Для того, чтобы избежать проблем со старыми IE, а также для более короткого и понятного кода старайтесь везде использовать свойства, а атрибуты – только там, где это действительно нужно.

А действительно нужны атрибуты очень редко – лишь в следующих трёх случаях:

  1. Когда нужно кросс-браузерно получить нестандартный HTML-атрибут.
  2. Когда нужно получить «оригинальное значение» стандартного HTML-атрибута, например, .
  3. Когда нужно получить список всех атрибутов, включая пользовательские. Для этого используется коллекция attributes .

Если вы хотите использовать собственные атрибуты в HTML, то помните, что атрибуты с именем, начинающимся на data- валидны в HTML5 и современные браузеры поддерживают доступ к ним через свойство dataset .

Задачи

Поставьте класс ссылкам

Сделайте жёлтыми внешние ссылки, добавив им класс external .

Linux.yaroslavl.ru

Учебник РНР
Назад Вперёд

DomElement->set_attribute — добавляет новый атрибут.

Описание

bool DomElement->set_attribute (string name, string value)

Устанавливает в атрибут с данным именем name данное значение/value. Если атрибут не существует, он будет создан.

Создание новых атрибутов для элементов в модели DOM Creating New Attributes for Elements in the DOM

Создание новых атрибутов отличается от создания других типов узлов, поскольку атрибуты являются не узлами, а свойствами узла элемента, и содержатся в связанной с этим элементом коллекции XmlAttributeCollection. Creating new attributes is different than creating other node types, because attributes are not nodes, but are properties of an element node and are contained in an XmlAttributeCollection associated with the element. Есть несколько способов создания атрибута и присоединения его к элементу: There are multiple ways to create an attribute and attach it to an element:

Получите узел элемента и примените метод SetAttribute, чтобы добавить атрибут в коллекцию атрибутов этого элемента. Get the element node and use SetAttribute to add an attribute to the attribute collection of that element.

Создайте узел XmlAttribute с помощью метода CreateAttribute, получите узел элемента и примените метод SetAttributeNode, чтобы добавить узел в коллекцию атрибутов этого элемента. Create an XmlAttribute node using the CreateAttribute method, get the element node, then use SetAttributeNode to add the node to the attribute collection of that element.

Следующий пример демонстрирует, как добавить атрибут к элементу с помощью метода SetAttribute. The following example shows how to add an attribute to an element using the SetAttribute method.

Следующий пример демонстрирует, как создать новый атрибут с помощью метода CreateAttribute. The following example shows a new attribute being created using the CreateAttribute method. Созданный атрибут он добавляет в коллекцию атрибутов элемента book с помощью метода SetAttributeNode. It then shows the attribute added to the attribute collection of the book element using the SetAttributeNode method.

Заданы следующие XML-данные: Given the following XML:

Создается новый атрибут, и ему присваивается значение: create a new attribute and give it a value:

Атрибут присоединяется к его элементу: and attach it to the element:

Вывод Output

Полный код для этого примера вы найдете на странице CreateAttribute. The full code sample can be found at CreateAttribute.

Также можно создать узел XmlAttribute и вызвать метод InsertBefore или InsertAfter, чтобы поместить его в подходящее место коллекции. You can also create an XmlAttribute node and use the InsertBefore or InsertAfter methods to place it in the appropriate position in the collection. Если в коллекции атрибутов уже существует атрибут с таким именем, эти методы удаляют существующий узел XmlAttribute и добавляют вместо него новый узел XmlAttribute. If an attribute with the same name is already present in the attribute collection, the existing XmlAttribute node is removed from the collection and the new XmlAttribute node is inserted. Алгоритм выполнения здесь такой же, как у метода SetAttribute. This performs the same way as the SetAttribute method. Эти методы принимают в качестве параметра существующий узел, который будет считаться базовой точкой для методов InsertBefore и InsertAfter. These methods take, as a parameter, an existing node as a reference point to do the InsertBefore and InsertAfter. Если не задан базовый узел, рядом с которым нужно вставить новый узел, метод InsertAfter по умолчанию вставляет новый узел в начало коллекции, If you do not provide a reference node indicating where to insert the new node, the default for the InsertAfter method is to insert the new node at the beginning of the collection. а метод InsertBefore — в конец коллекции. The default position for the InsertBefore, if no reference node is provided, is at the end of the collection.

Если вы создали для атрибутов коллекцию XmlNamedNodeMap, можете добавить именованный атрибут с помощью метода SetNamedItem. If you created an XmlNamedNodeMap of attributes, you can add an attribute by name using the SetNamedItem. Дополнительные сведения см. в статье Коллекции узлов в NamedNodeMap и NodeList. For more information, see Node Collections in NamedNodeMaps and NodeLists.

Атрибуты по умолчанию Default Attributes

При создании элемента, для которого декларирован атрибут по умолчанию, модель XML DOM создаст новый атрибут по умолчанию со значением по умолчанию и присоединит его к элементу. If you create an element that is declared to have a default attribute, then a new default attribute with its default value is created by the XML Document Object Model (DOM) and attached to the element. Одновременно будут созданы дочерние узлы атрибута по умолчанию. The child nodes of the default attribute are also created at this time.

Дочерние узлы атрибута Attribute Child Nodes

Значение узла атрибута становится его дочерними узлами. The value of an attribute node becomes its child nodes. Существует два допустимых типа дочерних узлов: XmlText и XmlEntityReference. There are only two types of valid child nodes: XmlText nodes, and XmlEntityReference nodes. Они являются дочерними узлами в том смысле, что такие методы, как FirstChild и LastChild, обрабатывают их как дочерние узлы. These are child nodes in the sense that methods such as FirstChild and LastChild process them as child nodes. Это отличие атрибута, имеющего дочерние узлы, становится важным во время удаления атрибута или его дочерних узлов. This distinction of an attribute having child nodes is important when trying to remove attributes or attribute child nodes. Дополнительные сведения см. в статье Удаление атрибутов из узла элемента в модели DOM. For more information, see Removing Attributes from an Element Node in the DOM.

Получить все атрибуты и их значения DOMDocument

выдает ошибку
Fatal error: Call to undefined method DOMElement::attributes() in C:\86\root\s5\catalog\script\section.php on line 10

15.09.2014, 13:24

Получить значение tipo из xml файла посредством domDocument
Добрый день, уважаемые пользователи ! Подскажите пожалуйста как достать значение tipo из xml файла.

Получить все значения из цикла
вывожу значения через цикл: echo ‘ 0

15.09.2014, 13:24

Получить все значения чекбоксов
Доброго всем дня. Ребят я только начинаю изучать jquery, поэтому сильно не пинайте. В общем не.

Получить все значения из $_GET
Здравствуйте! Никак не могу найти решения своей проблемы. Я хочу получить все значения из $_GET.

Получить атрибуты файла
Написал код, не понимаю, почему не работает. Ошибок нет, но всегда получаю invalid attributes.

Element.setAttribute()

На этой странице

Синтаксис

  • name — имя атрибута (строка).
  • value — значение атрибута.

Пример

В следующем примере, setAttribute() используется, чтобы установить атрибут disabled кнопки , делая её отключенной.

Примечания

При вызове на элементе внутри HTML документа, setAttribute переведет имя атрибута в нижний регистр.

Если указанный атрибут уже существует, его значение изменится на новое. Если атрибута ранее не существовало, он будет создан.

Несмотря на то, что метод getAttribute() возвращает null у удаленных атрибутов, вы должны использовать removeAttribute() вместо elt .setAttribute( attr , null) , чтобы удалить атрибут. Последний заставит значение null быть строкой «null» , которая, вероятно, не то, что вы хотите .

Использование setAttribute() для изменения определенных атрибутов особенно значимо в XUL, так как работает непоследовательно, а атрибут определяет значение по умолчанию. Для того, чтобы получить или изменить текущие значения, вы должны использовать свойства. Например, elt.value вместо elt.setAttribure(‘value’, val).

Методы DOM имеют дело с атрибутами элементов:

XSL: именованные наборы атрибутов (xsl:attribute-set)

Именованных наборов атрибутов создаются с помощью элемента верхнего уровня xsl:attribute-set , и затем могут быть использованы в других инструкциях, таких как xsl:element , xsl:copy и в самом элементе xsl:attribute-set . Именованный набор атрибутов представляет собой определенную совокупность атрибутов (т.е. пар имя = «значение»), не относящихся к определенному элементу. Эта совокупность имеет имя, по которому к ней можно обратиться из другой инструкции, и таким образом добавить все атрибуты из совокупности к конечному элементу.

Синтаксис:

Атрибуты:

  • name – является обязательным и задает имя набора атрибутов. По этому имени впоследствии можно обратиться к набору из другой инструкции с помощью атрибута use-attribute-sets , и добавить тем самым атрибуты из набора к конечному элементу.
  • use-attribute-sets – позволяет как бы импортировать в текущий набор атрибуты из другого набора. Значением данного атрибута будет имя импортируемого набора.

Содержимое элемента xsl:attribute-set может состоять из нуля или нескольких элементов xsl:attribute , с помощью которых и создаются атрибуты в этом наборе.

Для использования именованного набора атрибутов в других инструкциях применяется атрибут use-attribute-sets , значением которого должен быть перечень имен наборов атрибутов через пробел. Включение в указанные инструкции атрибута use-attribute-sets равнозначно добавлению элементов xsl:attribute для каждого атрибута из каждого именованного набора атрибутов в начало содержимого того элемента, где этот атрибут use-attribute-sets находится, причем в том же порядке, в котором названия этих наборов были перечислены в атрибуте use-attribute-sets . Так как добавленный к элементу атрибут заменяет любой из уже имевшихся атрибутов этого элемента с таким же именем, то если добавляемые инструкциями xsl:attribute и элементом xsl:attribute-set атрибуты повторяются, они будут заменяться в соответствии с указанным порядком.

Если в результате использования атрибутов use-attribute-sets в элементах xsl:attribute-set набор атрибутов начинает прямо или косвенно использовать сам себя, фиксируется ошибка.

Набор атрибутов так же можно добавить и к фиксированным конечным элементам, использовав в них все тот же атрибут use-attribute-sets . Его использование в данном случае даст тот же результат, что и в случае с инструкциями, но порядок включения атрибутов в конечный элемент будет немного другим: сначала будут добавлены атрибуты из наборов (причем в том же порядке, в котором названия этих наборов были перечислены в атрибуте use-attribute-sets ), потом будут добавлены атрибуты, указанные в фиксированном конечном элементе, и наконец, будут добавлены все атрибуты, заданные элементами xsl:attribute . Это нужно учитывать в виду замены атрибутов с одинаковыми именами.

Поскольку набор атрибутов может вызываться из разных шаблонов ( xsl:template ), а в самих наборах могут использоваться выражения XPath, следует четко понимать, какой элемент будет в каждом случае являться текущим. Во всех случаях текущим будет являться тот же элемент, который является текущим в инструкции, вызывающей набор (т.е. содержащей атрибут use-attribute-sets ).

Если стиль содержит несколько наборов атрибутов с одинаковым именем, то эти наборы объединяются. При этом если один или несколько наборов был импортирован в стиль, учитывается приоритет импорта.

Что такое код domelement >set_attribute

(no version information, might be only in CVS)

DomElement->set_attribute — Adds new attribute

Description bool DomElement->set_attribute ( string name, string value)

Sets an attribute with name name ot the given value. If the attribute does not exist, it will be created.

Example 1. Setting an attribute

create_element(«para»); $newnode = $doc->append_child($node); $newnode->set_attribute(«align», «left»); ?>

Что такое код domelement >set_attribute

(no version information, might be only in CVS)

DomElement->set_attribute — Adds new attribute

Description bool DomElement->set_attribute ( string name, string value)

Sets an attribute with name name ot the given value. If the attribute does not exist, it will be created.

Пример 1. Setting an attribute

create_element(«para»); $newnode = $doc->append_child($node); $newnode->set_attribute(«align», «left»); ?>

Что такое код domelement >set_attribute

DomElement->set_attribute — добавляет новый атрибут.

Описание

bool DomElement->set_attribute (string name, string value)

Устанавливает в атрибут с данным именем name данное значение/value. Если атрибут не существует, он будет создан.

Пример 1. Установка атрибута


Назад Оглавление Вперёд
DomElement->set_attribute_node Вверх DomElement->tagname

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

Илон Маск рекомендует:  Что такое код unlockdata
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL