Какими свойствами обладают атрибуты

Какими свойствами обладают атрибуты thumbnail

Какой оператор реляционной алгебры выводит только строки, которые встречаются в обеих таблицах

Назначение правила целостности на уровне сущности

Атрибут В функционально зависит от атрибута А, если

Свойствами реляционной таблицы являются

Основными компонентами данных в реляционной модели БД являются

Таблица приведена к четвертой нормальной форме, если

Таблица приведена к нормальной форме Бойса-Кодда, если

Таблица приведена к третьей нормальной форме, если

Таблица приведена ко второй нормальной форме, если

Таблица приведена к первой нормальной форме, если

– Определены все ключевые атрибуты;

– Отсутствуют повторяющиеся группы;

– Все атрибуты зависят от первичного ключа;

– Отсутствуют частичные зависимости;

– Нет атрибутов, зависящих от части первичного ключа;

– Отсутствуют транзитивные зависимости.

Каждый детерминант является потенциальным ключом.

111. Какая зависимость называется частичной?

Зависимость, определяемая только частью составного первичного ключа

112. Какая зависимость называется транзитивной?

Зависимость одного не первичного атрибута от другого не первичного атрибута

Отсутствуют многозначные зависимости

Отношения, Атрибуты, Кортежи, Ключи, Домены, Степень связи.

115. Что является совокупностью сущностей, объединенных общими свойствами?

Набор сущностей.

– каждый элемент таблицы — один элемент данных

– все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д.)

– каждый столбец имеет уникальное имя

– одинаковые строки в таблице отсутствуют

– порядок следования строк и столбцов может быть произвольным

Для любого допустимого значения отношения R каждое значение А связано в точности с одним значением В.

118. Что представляет собой нормализация таблиц БД?

Это процесс, направленный на уменьшение избыточности информации в базе данных.

119. Как называется атрибут, который является частью составного ключа?

Ключевой атрибут

120. Какой ключ используется только в целях поиска данных?

Первичный ключ

Каждый кортеж любого отношения должен отличатся от любого другого кортежа этого отношения (т.е. любое отношение должно обладать первичным ключом).

122. Сколько существует реляционных операторов для манипулирования содержимым таблиц?

– = Равный к

– Больше чем

– < Меньше чем

– >= Больше чем или равно

– <= Меньше чем или равно

– < > Не равно

123. Какой оператор реляционной алгебры объединяет все строки из двух таблиц?

Объединение (UNION).

Пересечение. (INTERSECT).

125. Какой оператор реляционной алгебры выводит все строки первой таблицы, которые отсутствуют в другой (вычитание)?

Разность (DIFFERENCE).

126. Какой оператор реляционной алгебры выводит все возможные пары строк из двух таблиц (декартовое произведение)?

Декартовое произведение (PRODUCT).

127. Какой оператор реляционной алгебры выводит значения всех строк, найденных в таблице?

Выбор (SELECT).

128. Какой оператор реляционной алгебры позволяет компоновать информацию из двух или более таблиц?

Соединение (JOIN).

129. Между какими таблицами имеет место связь ОДИН-К-ОДНОМУ?

Связь ОДИН К ОДНОМУ имеет смысл , когда одной записи из родительской таблицы соотв. одна запись из дочерней таблицы.

130. Между какими таблицами имеет место связь ОДИН-КО-МНОГИМ?

Связь ОДИН КО МНОГИМ имеет смысл, когда одной записи родительской таблицы соответствует несколько записей из дочерней таблицы.

131. Между какими таблицами имеет место связь МНОГИЕ-КО-МНОГИМ?

Связь МНОГИЕ КО МНОГИМ имеет смысл: когда одной записи из родительской таблицы соответствует несколько записей из дочерней, и записи из дочерней таблицы соответствует несколько записей из родительской таблицы.

132. Что представляет собой сущность?

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

133. Чем является тип сущности?

Тип сущности относится к набору однородных личностей, предметов, событий и идей, выступающих, как целое.

134. Чем является экземпляр сущности?

Экземпляр сущности относится к конкретной вещи в наборе.

135. Что представляет собой домен?

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

136. Что представляет собой ключ?

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

137. На что подразделяются типы сущностей?

-слабого типа

-сильного типа

138. Характерной особенностью какой сущности является то, что каждый ее экземпляр нельзя однозначно идентифицировать с помощью только тех атрибутов, которые относятся к сущности этого типа?

Слабой сущности.

139. Выберите тип сущности, существование которого зависит от какого-то другого типа сущности?

Относится к типу слабой сущности.

140. Характерной особенностью какой сущности является то, что каждый ее экземпляр может быть однозначно идентифицирован с помощью атрибута (атрибутов) первичного ключа сущности этого типа?

Сильной сущности.

141. Какими свойствами обладает атрибут?

– имя (не используйте русские буквы в имени!),

– тип данных. Самые распространенные типы данных:

– PK (primary key) – первичный ключ;

– NN (not null) – ячейка не допускает пустые значения;

– UN (unique) – значение должно быть уникальным в пределах столбца;

– AI (auto incremental) – это свойство полезно для простого первичного ключа, оно означает, что первичный ключ будет заполняться автоматически натуральными числами 1, 2, 3, и т.п.;

– DEFAULT – значение по умолчанию, т.е., значение, которое при добавлении новой строки в таблицу автоматически вставляется в ячейку сервером, если пользователь оставил ячейку пустой.

– простой атрибут

-составной атрибут

– однозначный атрибут

-многозначный атрибут

-производный атрибут

143. Какие атрибуты состоят из одного компонента с независимым существованием?

Простой атрибут

144. Какие атрибуты состоят из нескольких компонентов, каждый из которых характеризуется независимым существованием?

Составной атрибут

145. Какие атрибуты содержат одно значение для оного экземпляра сущности?

Однозначный атрибут

146. Какие атрибуты могут содержать несколько значений для одного экземпляра сущности?

Многозначный атрибут

147. Какие атрибуты представляют собой значение, вычисляемое от значения связанного с ним атрибута или некоторого множества атрибутов, принадлежащих некоторой сущности?

Производный атрибут

148. Как обозначается необязательный класс принадлежности бинарной связи степени 1?

149. Как обозначается обязательный класс принадлежности бинарной связи степени 1?

150. Как обозначается необязательный класс принадлежности бинарной связи степени n?

0, n

151. Как обозначается обязательный класс принадлежности бинарной связи степени n?

1, n

152. Как обозначается необязательный класс принадлежности бинарной связи?

0,1

153. Как обозначается обязательный класс принадлежности бинарной связи?

1,1

154. Когда связь является идентифицирующей и как она обозначается на ER-диаграмме?

Идентифицирующей связью называется такая связь, в которой один или несколько столбцов ключа, указанные в ссылке (т.е. находящиеся в родительской таблице), используются в качестве всего первичного ключа или части первичного ключа ссылающейся (т.е. дочерней) таблицы.

На ER-диаграмме обозначается сплошной линией.

155. Когда связь является неидентифицирующей и как она обозначается на ER-диаграмме?

Неидентифицирующими связями называются связи, создаваемые при определении внешнего ключа, который не входит в состав первичного ключа ссылающейся (дочерней) таблицы.

На ER-диаграмме обозначается штриховой или пунктирной линией.

Источник

Про­дол­жа­ем цикл ста­тей об осно­вах объектно-ориентированного про­грам­ми­ро­ва­ния. Сего­дня гово­рим о двух важ­ных сло­вах в ООП: атри­бу­тах и мето­дах. Это осно­ва лек­си­ко­на ООП, поэто­му нуж­но знать.

Крат­кое содер­жа­ние преды­ду­щих частей:

  • ООП — это под­ход к про­грам­ми­ро­ва­нию, осно­ван­ный на поня­тии объ­ек­тов и классов.
  • Объ­ект мож­но пред­ста­вить как некую «короб­ку», в кото­рой лежат какие-то дан­ные и кото­рая уме­ет совер­шать какие-то дей­ствия. Без объ­ек­тов всё это лежит про­сто «в про­грам­ме», а бла­го­да­ря объ­ек­там оно раз­ло­же­но по понят­ным управ­ля­е­мым «короб­кам».
  • Мож­но иметь типо­вые объ­ек­ты, то есть име­ю­щие похо­жую струк­ту­ру и содер­жа­ние — как про­из­во­дить това­ры на кон­вей­е­ре. Чер­тёж, по кото­ро­му дела­ют такие объ­ек­ты, назы­ва­ет­ся клас­сом. Напри­мер, в про­грам­ме может быть класс «поль­зо­ва­тель», по кото­ро­му созда­ют­ся все буду­щие поль­зо­ва­те­ли. Или класс «товар», по кото­ро­му созда­ют­ся все буду­щие товары.
  • Всё это нуж­но, что­бы упо­ря­до­чить рабо­ту слож­ных боль­ших программ.

Теперь ныр­нём в атри­бу­ты и методы.

Атрибуты

Атри­бут — это пере­мен­ная, свя­зан­ная с объ­ек­том или клас­сом. Гру­бо гово­ря, если я хочу, что­бы у объ­ек­та «Поль­зо­ва­тель» появи­лась фами­лия, я дол­жен сде­лать поль­зо­ва­те­лю атри­бут «Фами­лия».

Для про­грам­ми­стов: у клас­са есть атри­бу­ты, свой­ства и поля. В зави­си­мо­сти от язы­ка про­грам­ми­ро­ва­ния эти три пара­мет­ра могут озна­чать одно и то же, а могут раз­ли­чать­ся. В этой ста­тье мы раз­би­ра­ем ака­де­ми­че­ский под­ход к струк­ту­ре клас­са вида «атри­бут — значение».

Возь­мём в каче­стве при­ме­ра мета­фо­ру — про­из­вод­ство теле­фо­нов. У нас есть класс «Смарт­фон» — некий абстракт­ный смарт­фон, по лека­лам кото­ро­го изго­тав­ли­ва­ют кон­крет­ные объекты-смартфоны.

У клас­са «Смарт­фон» могут быть такие атрибуты:

  • зад­няя камера
  • перед­няя камера
  • дат­чи­ки объёма
  • бата­рей­ка
  • память

Это у нас будут атри­бу­ты клас­са «Смарт­фон». Они могут при­ни­мать кон­крет­ные зна­че­ния: каме­ры могут быть раз­ных моде­лей, память может быть 64 или 256 гига­байт, а бата­рей­ка — 2500 мАч или 3500 мАч.

Когда мы зада­ём атри­бут для клас­са, мы как буд­то настра­и­ва­ем про­из­вод­ствен­ную линию: «Тут у нас будет ста­нок по уста­нов­ке камер, там — по вкле­и­ва­нию бата­реи». Когда мы зада­ли класс с опре­де­лён­ны­ми атри­бу­та­ми, все объ­ек­ты, про­из­ве­дён­ные из это­го клас­са, будут появ­лять­ся на свет с эти­ми атрибутами.

Методы

Мето­ды — это то, как мож­но вза­и­мо­дей­ство­вать с атри­бу­та­ми, узна­вать и менять их зна­че­ния. Рас­смот­рим их на том же про­шлом при­ме­ре про класс мобиль­ни­ка. Вот какие дей­ствия мож­но совершать:

  • позво­нить;
  • сде­лать фото;
  • обра­бо­тать HDR-фото, что­бы было кра­си­во, когда сни­ма­ешь про­тив солнца;
  • запи­сать заметки;
  • уста­но­вить программу;
  • посмот­реть погоду;
  • поли­стать фотки;
  • пой­мать сиг­нал сото­вой сети.

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

Если посмот­реть на спи­сок, мож­но заме­тить, что почти все мето­ды доступ­ны для выпол­не­ния извне — позво­нить, сде­лать фото, посмот­реть пого­ду и так далее. Это зна­чит, что это откры­тые мето­ды (public) — их может вызы­вать и рабо­тать с ними кто угод­но: как поль­зо­ва­тель, так и дру­гие про­грам­мы для сво­их нужд.

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

Ещё есть защи­щён­ные (protected) мето­ды. Их пока нет в наших при­ме­рах, но мы до них обя­за­тель­но дойдём.

Практику веб‑программирования можно получить в Яндекс.Практикуме

Первый курс — бесплатно.

Попробовать

Какими свойствами обладают атрибутыКакими свойствами обладают атрибутыКакими свойствами обладают атрибутыКакими свойствами обладают атрибуты

Один мальчик подписался на рассылку Кода и постепенно стал
программистом

Основы программирования без зауми и снобизма. Просто и понятно о том,
как получить новую профессию

Некорректный формат почты

Спасибо!
Проверьте почту

Источник

В этой статье познакомимся DOM-свойствами и атрибутами, рассмотрим, чем они отличаются и как правильно с ними работать. Разберём какие в JavaScript есть методы для выполнения операций над атрибутами.

Чем отличается атрибут от DOM-свойства?

Атрибуты — это HTML-сущности, с помощью которых мы можем добавить определённые данные к элементам в HTML-коде.

Когда браузер запрашивает некоторую страницу, он получает её исходный HTML-код. После этого он парсит этот код и строит на его основании DOM. Во время этого процесса HTML-атрибуты элементов переводятся в соответствующие DOM-свойства.

Например, браузер, при чтении следующей HTML-строчки кода, создаст для этого элемента следующие DOM-свойства: id, className, src и alt.

<img id=”brand” class=”brand” src=”logo.png” alt=”логотип сайта”>

Обращение к этим свойствам в коде JavaScript выполняется как к свойствам объекта. Объектом здесь выступает узел (элемент) DOM.

Пример, в котором получим значения DOM-свойств для элемента, приведённого выше, и выведем их значения в консоль:

// получим элемент
var brandImg = document.querySelector(‘#brand’);

// выведем в консоль значения DOM-свойств элемента
console.log(brandImg.id); // “brand”
console.log(brandImg.className); // “brand”
console.log(brandImg.src); // “logo.png”
console.log(brandImg.alt); // “логотип сайта”

Некоторые названия DOM-свойств не соответствуют именам атрибутов. Одним из таких является атрибут class. Данному атрибуту соответствует DOM-свойство className. Данное отличие связано с тем, что class является ключевым словом в JavaScript, оно зарезервировано и не может использоваться. Из-за этого разработчики стандарта решили использовать для соответствия какое-то другое название, в качестве которого было выбрано className.

Ещё один нюанс связан с тем, что перевод HTML-атрибутов, заданных в исходном коде документа, в DOM-свойства не всегда осуществляется один к одному.

Если элемент имеет нестандартный HTML-атрибут, то свойство, соответствующее ему в DOM, не создаётся.

<div id=”mydiv” alt=”…”></div>

<script>
// получим элемент
mydiv = document.querySelector(‘#mydiv’);
// получим значение свойство alt элемента и выведем его в консоль
console.log(mydiv.alt); // undefined
// получим значение атрибут alt элемента и выведем его в консоль
console.log(mydiv.getAttribute(‘alt’)); // “…”
</script>

Другое отличие связано с тем, что значения определённых HTML-атрибутов и соответствующих им DOM-свойств могут быть различными. Т.е. атрибут может иметь одно значение, а DOM-свойство, созданное на его основе – другое.

Одним из таких атрибутов является checked.

<input type=”checkbox” checked>

Значение HTML-атрибута checked в данном случае – это пустая строка. Но, свойство, соответствующее данному атрибуту в DOM, будет иметь значение true. Т.к. по правилам стандарта для установления true достаточно лишь упоминание этого атрибута в HTML-коде и при этом не важно какое он будет иметь значение.

При этом даже если мы в HTML-коде не укажем атрибут checked для элемента input с типом checkbox, то для него в DOM всё равно будет создано свойство checked, но оно будет равно false.

<input type=”checkbox”>

Кроме этого, JavaScript позволяет также работать с атрибутами. Для этого в DOM API имеются специальные методы. Но их желательно использовать только тогда, когда вам действительно нужно работать с данными именно так.

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

Основные отличия между DOM-свойствами и атрибутами:

  • значение атрибута – это всегда строка, а значение DOM-свойства – определённый тип данных (не обязательно строка);
  • имя атрибута – регистронезависимо, а DOM-свойства – регистрозависимо. Т.е. в HTML-коде мы можем, например, HTML-атрибут id написать, как Id, ID и т.д. То же касается и имени атрибута, которые мы указываем в специальных методах JavaScript для работы с ним. Но к соответствующему DOM-свойству мы можем обратиться только по id и никак по-другому.

Работа с DOM-свойствами элемента

Работа со свойствами элементов в JavaScript как уже было отмечено выше осуществляется как со свойствами объектов.

Но для того, чтобы обратиться к свойству некоторого элемента, его необходимо сначала получить. Получить DOM-элемент в JavaScript можно, например, с помощью универсального метода querySelector, а коллекцию DOM элементов, например, посредством querySelectorAll.

В качестве первого примера рассмотрим следующий HTML-элемент:

<div id=”alert” class=”alert alert-info” title=”Текст подсказки…”>
Текст информационного сообщения…
</div>

<script>
var alert = document.querySelector(‘#alert’); // получим элемент
</script>

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

Чтение значений DOM-свойств:

// получим значение DOM свойства id
var alertId = alert.id; // “alert”
// получим значение DOM свойства className
var alertClass = alert.className; // “alert alert-info”
// получим значение DOM свойства title
var alertId = alert.title; // “Текст подсказки…”

Изменение значений DOM-свойств:

// для изменения значения DOM свойству, ему нужно просто присвоить новое значение
alert.title = “Новый текст подсказки”; // присвоим DOM-свойству title элемента новое значение
// или так (т.к. обращение к этому свойству мы уже сохранили в переменную alertId)
alertId = “Новый текст подсказки”;
// или так (т.к. обращение к этому свойству мы уже сохранили в переменную alertId)
alert.className = “alert alert-warning”;

Добавление DOM-свойств:

alert.lang = “ru”; // установим свойству lang значение равное “ru”
alert.dir = “ltr”; // установим свойство dir значение равное “ltr”

Пример, в котором выведем в консоль все значения классов, которые есть у элементов p на странице:

var paragraphs = document.querySelectorAll(“p”);
for (var i = 0, length = paragraphs.length ; i < length; i++) {
if (paragraphs[i].className) {
console.log(paragraphs[i].className);
}

Пример, в котором установим всем элементам с классом content свойство lang со значением “ru”:

var contents = document.querySelectorAll(‘.content’);
for (var i = 0, length = contents.length; i < length; i++) {
contents[i].lang = “ru”;
}

Атрибуты элементов и методы для работы с ними

Атрибуты изначально задаются в HTML-коде. Они хоть и связаны, некоторым образом, со свойствами, но это не одно и тоже. В большинстве случаев следует работать именно со свойствами, а к атрибутам обращаться только тогда, когда это действительно нужно.

Значения атрибутов, в отличие от DOM-свойств, как это уже было отмечено выше всегда является строкой.

В JavaScript для выполнения операций, связанных с атрибутами, имеется четыре метода:

  • .hasAttribute(‘имя_атрибута’) – проверяет наличие указанного атрибута у элемента. Если проверяемый атрибут есть у элемента, то данный метод возвращает true, в противном случае – false.
  • .getAttribute(‘имя_атрибута’) – получает значение атрибута. Если указанного атрибута нет у элемента, то данный метод возвращает пустую строку (“”) или null.
  • .setAttribute(‘имя_атрибута’, ‘значение_атрибута’) – устанавливает указанный атрибут с указанным значением элементу. Если указанный атрибут есть у элемента, то данный метод тогда просто изменит ему значение.
  • .removeAttribute(‘имя_атрибута’) – удаляет указанный атрибут у элемента.

Рассмотрим примеры.

Очень интересный пример с атрибутом value.

Пример с атрибутом value

<input name=”name” type=”text” value=”Bob”>

<script>
var name = document.querySelector(‘input[name=”name”]’); // получим элемент
</script>

Получим значение атрибута value и DOM-свойства value:

// получим значение атрибута value у элемента
name.getAttribute(‘value’); // “Bob”
// получим значение DOM-свойства value
name.value; // “Bob”

// обновим значение атрибута value, установим ему новое значение
name.setAttribute(‘value’, ‘Tom’); // “Tom”
// получим значение DOM свойства value
name.value; // “Tom”

Из этого примера видно, что, при измении атрибута value, браузер автоматически изменяет в соответствии с ним DOM-свойство value.

Теперь давайте проделаем действия, наоборот, а именно изменим значение DOM-свойства и проверим изменится ли значение атрибута:

// установим новое значение DOM-свойству value
name.value = “John”;
// получим значение атрибута value у элемента
name.getAttribute(‘value’); // “Tom”

Из этого примера видно, что не всегда изменение DOM-свойства приводит к соответствующему изменению атрибута. Т.е. в этом случае изменение DOM-свойства value не изменяет соответствующий ему атрибут.

Тоже самое произойдёт, когда пользователь будет вводить текст в это поле. В DOM-свойстве value будет находится действительное значение, а в соответствующем ему атрибуте изначальное или то, которое мы установили, например, с помощью метода setAttribute.

Этот пример показывает, что более корректно работать всегда с DOM-свойствами, а обращаться к атрибуту нужно только тогда, когда это действительно необходимо.

Даже в случае, когда вам нужно получить начальное значение value, которое мы установили в HTML, можно воспользоваться свойством. Свойство, содержащее начальное значение атрибута value называется defaultValue.

name.defaultValue; // Tom

Ещё один очень интересный пример, но теперь с атрибутом href.

Пример с атрибутом href

Пример, в котором нам нужно получить значение ссылки так, как оно было установлено в HTML.

<a id=”link” href=”page2.html”></a>

<script>
var page2 = document.querySelector(‘#link’);
page2.getAttribute(‘href’); // page2.html
page2.href; // полный URL, например: https://localhost/page2.html
</script>

В этом примере атрибут href и DOM-свойство href содержат разные значения. В атрибуте href – то, что мы установили в коде, а в DOM-свойстве – полный URL. Это различие продиктовано стандартом, в соответствии с которым браузер должен привести значение href к полному URL.

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

В завершении разберём ещё атрибут selected.

Пример с атрибутом selected

Пример, в котором показано как можно получить значение выбранной опции select:

<select id=”mark”>
<option value=”none” selected>нет оценки</option>
<option value=”1″>1</option>
<option value=”2″>2</option>
<option value=”3″>3</option>
<option value=”4″>4</option>
<option value=”5″>5</option>
</select>

<script>
// получаем элемент select
var mark = document.querySelector(‘#mark’);
// 1 способ
mark.querySelector(‘option:checked’).value;
// 2 способ
mark.value;
</script>

Пример, в котором показано как можно получить выбранные значения опций в элементе select:

<select id=”mark” multiple>
<option value=”none” selected>нет оценки</option>
<option value=”1″>1</option>
<option value=”2″>2</option>
<option value=”3″>3</option>
<option value=”4″>4</option>
<option value=”5″>5</option>
</select>

<script>
// получаем элемент select
var mark = document.querySelector(‘#mark’);
// 1 способ (через создание массива и наполнением его значений выбранных опций)
var arr = [];
for (var i = 0, length = mark.options.length; i < length; i++) {
if (mark.options[i].selected) {
arr.push(mark.options[i].value);
}
}
// 2 способ (более современный, с использованием DOM-свойства selectedOptions)
var arr = Array.from(mark.selectedOptions, option => option.value)
</script>

Ещё один способ работы с атрибутами (свойство attributes)

В JavaScript у каждого элемента имеется свойство attributes, с помощью которого можно получить все его атрибуты в виде объекта NamedNodeMap.

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

Доступ к атрибуту в этой коллекции осуществляется по его индексу или с помощью метода item. Отсчёт атрибутов в этой коллекции ведётся с 0.

Например, выведем в консоль все атрибуты некоторого элемента:

<p id=”message” class=”text” style=”text-align: center;”>I LOVE JAVASCRIPT</p>

<script>
// получим элемент по его идентификатору message
var message = document.querySelector(‘#message’);
// получим его атрибуты
var attrs = message.attributes;
// переберём все атрибуты с помощью цикла (attrs.length – количество атрибутов)
for (var i = 0, length = attrs.length; i < length; i++) {
// attrs[i] или attrs.item(i) – обращение к атрибуту в коллекции по его порядковому номеру
// attrs[i].name – имя атрибута
// attrs[i].value – значение атрибута (с помощью него можно также изменить значение атрибута)
console.log(attrs[i].name + ‘ = ‘ + attrs[i].value);
// или с помощью метода item
console.log(attrs.item(i).name + ‘ = ‘ + attrs.item(i).value);
// пример как можно изменить значение через свойство value
// if (attrs[i].name === “class”) {
// attr[i].value = “info”;
// }
}

// в результате выполнения:
// id = message
// class = text
// style = text-align: center;

</script>

Кроме этого, работать с этой коллекцией можно также посредством следующих методов:

  • .getNamedItem(‘имя_aтpибyтa’) – получает значение указанного атрибута (если указанный атрибут отсутствует у элемента, то в качестве результата получим null).
  • .setNamedItem(‘aтpибyт_yзeл’) – добавляет новый атрибут к элементу или обновляет значение у существующего. Для создания атрибута необходимо использовать метод document.createAttribute(), которому в качестве параметра необходимо передать имя атрибута. После этого созданному атрибуту необходимо присвоить значение с помощью свойства value.
  • .removeNamedItem(‘имя_атрибута’) – удаляет указанный атрибут у элемента (в качестве результата возвращает удалённый атрибут).

Пример, работы с атрибутами через методы getNamedItem, setNamedItem и removeNamedItem:

<p id=”message” class=”text” style=”text-align: center;”>I LOVE JAVASCRIPT</p>

<script>
// получим элемент по его идентификатору message
var message = document.querySelector(‘#message’);
// получим его аттрибуты
var attrs = message.attributes;
// Задача №1. Получим значение атрибута id
console.log(attrs.getNamedItem(‘id’));
// Задача №2. Установим атрибут (если он есть, то изменим его значение, в противном случае добавим новый)
// создаём атрибут style и сохраняем его в переменную attrStyle
var attrStyle = document.createAttribute(‘style’);
// присваиваем значение атрибуту с помощью свойства value
attrStyle.value = ‘text-align: left;’;
// устанавливаем атрибут элементу
attrs.setNamedItem(attrStyle);
// Задача №3. удалить атрибут class у элемента
attrs.removeNamedItem(“class”);
</script>

Задачи

  • Вывести в консоль все элементы документа, которые имеют атрибут id.
  • Добавить атрибут title ко всем изображениям на странице, если данного атрибута у них нет. Значение атрибута установить равным значению атрибута alt.

Источник