Javascript.RU

DOM: свойства VS атрибуты

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

У DOM-элементов в javascript есть свойства и атрибуты. И те и другие имеют имя и значение.
Поэтому иногда разработчики путают одно с другим.

Между ними есть соответствие, но оно не однозначное и его лучше понимать.

Узлы DOM являются объектами с точки зрения javascript. А у объектов есть свойства. Поэтому любому узлу можно назначить свойство, используя обычный синтаксис.

var elem = document.getElementById('MyElement')
elem.mySuperProperty = 5

Значением свойства может быть любой объект. Это же javascript.

elem.master = {
  name: vasya
}
alert(elem.master.name)

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

В следующем примере элемент имеет атрибуты id, class и нестандартный (валидатор будет ругаться) атрибут alpha.

<div id="MyElement" class="big" alpha="omega"></div>

Атрибуты можно добавлять, удалять и изменять. Для этого есть специальные методы:

setAttribute(name, value)
Устанавливает значение атрибута
getAttribute(name)
Получить значение атрибута
hasAttribute(name)
Проверить, есть ли такой атрибут
removeAttribute(name)
Удалить атрибут

Имя атрибута является регистронезависимым.

// название маленькими буквами
document.body.setAttribute('test', 123)

// большими буквами
document.body.getAttribute('TEST') // 123

Значением атрибута может быть только строка. Это же HTML..

Все, вроде бы, ясно. Есть свойства. Есть атрибуты.

Но создатели javascript решили (с лучшими намерениями) запутать ситуацию и создать искусственное соответствие между свойством и атрибутом.

А именно, браузер синхронизирует значения ряда свойств с атрибутами. Если меняется атрибут, то меняется и свойство с этим именем. И наоборот.

Например:

document.body.id = 5
alert(document.body.getAttribute('id'))

А теперь - наоборот

document.body.setAttribute('id', 'NewId')
alert(document.body.id)

Такая синхронизация гарантируется для всех основных стандартных атрибутов.
При этом атрибуту с именем class соответствует свойство className, т.к. ключевое слово class зарезервировано в javascript.

Для "левых" атрибутов браузер ничего не гарантирует

document.body.setAttribute('cool', 'SomeValue')
alert(document.body.cool)  // undefined везде кроме IE (почему - см ниже)
Название атрибута не зависит от регистра
Атрибуты с именами "abc" и "ABC" - один и тот же атрибут.
document.body.setAttribute('abc', 1)
document.body.setAttribute('ABC', 5)
alert(document.body.getAttribute('abc')) // => стало 5

Но свойства в разных регистрах - два разных свойства.

document.body.abc = 1
document.body.ABC = 5
alert(document.body.abc) // => все еще 1

Увы, в Internet Explorer версии до 8.0 с этим проблемы. Этот браузер старается по возможности уравнять свойства и атрибуты. Но как быть, если свойства - регистрозависимы, а атрибуты - нет?

Создатели IE поступили хитро: setAttribute ставит оба свойства (abc и ABC).. Ну а getAttribute возвращает первое попавшееся из них, с учетом регистронезависимости. Если таких свойств несколько, то невозможно сказать, какое именно он вернет.

document.body.setAttribute('abc', 1)
document.body.setAttribute('ABC', 5)

// IE пытается уравнять свойства и атрибуты
alert(document.body.abc) // => 1 
alert(document.body.ABC) // => 5
 
// но getAttribute выбирает первое попавшееся свойство
// за вычетом регистра букв
alert(document.body.getAttribute('abc')) // => 1
alert(document.body.getAttribute('ABC')) // => 1

Запустите этот пример в IE6/7 и, например, в Firefox, чтобы лучше понять различия.

Атрибут можно установить любой, а свойство - нет
Например, можно установить для тэга <body> атрибут tagName, но соответствующее свойство - только для чтения, поэтому оно не изменится:
document.body.setAttribute('tagName',1)
document.body.getAttribute('tagName') // 1 
document.body.tagName  // "BODY"

Вообще говоря, браузер не гарантирует синхронизацию атрибута и свойства.

Атрибуты и обработчики событий
В IE текстовое значение, присвоенное атрибуту onclick, не является функцией и не будет работать:
elem.setAttribute('onclick', 'alert(something)') // в IE не работает

Firefox корректно преобразовывает строку в функцию, поэтому там этот фрагмент работать будет. Но, вообще говоря, никакой браузер не обязан этого делать.

Атрибут - это строка (кроме IE)
Следующий код это наглядно демонстрирует:
document.body.setAttribute('v',{a:5})
alert(document.body.getAttribute('v'))  // "[object Object]" в Firefox
alert(document.body.getAttribute('v').a) // 5 в IE

В первой строке атрибуту присвоено значение-объект. Firefox тут же автоматически преобразовал его в строку. А IE, в нарушение стандартов, оставил атрибут объектом.

Исключение className
Как уже говорилось в разделе о синхронизации, атрибуту class соответствует свойство className. Так получилось из-за того, что class является зарезервированным словом javascript.

В IE также является исключением атрибут for, для него используется свойство forHtml.

Cвойство элемента и атрибут - это разные вещи. Не используйте одно вместо другого.

Вообще, обычно свойств хватает с головой.


Автор: Гость, дата: 14 июня, 2009 - 03:23
#permalink

В IE также является исключением ключевое атрибут for, для него используется свойство forHtml.

Атрибуту for тега <label> соответствует свойство htmlFor:

var label = document.createElement("label");
label.htmlFor = "inputID";
// и
label.setAttribute("for", "inputID");
Если когда-то нужен именно атрибут - напишите об этом в комментарии к этой статье.

Например, атрибут value и свойство value элементов ввода не синхронизируются браузером. Важно изменять именно значение атрибута, чтобы обеспечить корректность поиска элементов:

var inputs = document.querySelectorAll('input[value*="text"]');

Автор: anonimus (не зарегистрирован), дата: 31 октября, 2013 - 02:10
#permalink

ничего не понятно из статьи ((((((
все как-то не систематично и непонятно
какие-то свойства и атрибуты
что это вообще такое?


Автор: Гость (не зарегистрирован), дата: 24 января, 2014 - 10:23
#permalink

to:
Автор: anonimus (не зарегистрирован), дата: 31 октября, 2013 - 03:10

Может, для начала следовало бы линки да книжки по HTML почитать?
Во-вторых, почитав несколько статей сайта по очереди советую и вам того же - тогда поймете, хотя бы почему в каждой статье не разжевывается одно и то же понятие (хорошо, кстати, разжеванное в более ранней статье)


Автор: george260493, дата: 22 июля, 2015 - 00:21
#permalink

Смотри братуха, вот что здесь сказано: Имена свойств регистрозависмые а имена атрибутов ето ключи обьекта и не чувствительны к регистру. В СУБД MYSQL установленной на операционной системе Windows тоже самое с именами атрибутов обьекта, то есть с именами ключей-атрибутов таблицы реляционных данных.


Автор: Куст (не зарегистрирован), дата: 29 июля, 2009 - 12:44
#permalink

Так и не понял что такое атрибут и свойство((((


Автор: Cy1on (не зарегистрирован), дата: 30 июля, 2009 - 14:20
#permalink

Свойство - это атрибут с четко зафиксированным смыслом. Этот смысл жестко привязан к имени свойства (size - это свойство размера). Атрибут - более широкое понятие. Это пользовательские данные, если угодно. В том смысле, что пользователь может вводить свои атрибуты с произвольными именами, и сам назначать им смысл. (названия таких доп. Атрибутов не могут совпадать с именами Свойств).


Автор: Илья Кантор, дата: 30 июля, 2009 - 15:11
#permalink

Обновил статью. Надеюсь, стало понятнее.


Автор: iyntx, дата: 21 июля, 2011 - 01:29
#permalink

Огромное спасибо!
Первая строка статьи очень полезная .


Автор: aldan8, дата: 31 июля, 2009 - 18:26
#permalink

мне кажется вы слегка усложняете понятия свойства и атрибута ( как и автор статьи ), при всём уважении к вам )). Мне кажется надо по конкретнее и по проще (кстати , автору слегка это удалось , когда он привел в пример такие атрибуты как class , id ) , типа , атрибуты - это атрибуты html тэгов , например : id, class, style, (и иногда) margin background celpadding cellspasing href и т.д. А свойства - это свойства элементов(тегов) в javascript-е , которые необходимы для работы(манипулирования) с этими "тэгами" через программу(javascript) .

PS. В интернете действительно нет нормальных самоучителей и учебников по которым можно учиться . Есть только хорошие справочники Sad Я думаю, это единственный ресурс по которому возможно учиться


Автор: Гость (не зарегистрирован), дата: 31 августа, 2009 - 16:51
#permalink

Выходим из анабиоза, отличных учебников полно - Флэнаган, ppk, и т.д. Сколько можно ныть про отсутствие, вместо того чтобы нормально постараться поискать. Острочертело уже.


Автор: Гость (не зарегистрирован), дата: 8 ноября, 2010 - 23:08
#permalink

Так а почему ты сидишь на этом сайтике? И читаешь статьи, которые авторы печатают с чистым сердцем, чтобы разъяснить ситуацию другим. Авторам, спасибо, а таким Гостям, как этот чёрт желаю побольше ситуаций в которых они будут свои нервы тренировать сдерживать.


Автор: Гость (не зарегистрирован), дата: 2 февраля, 2011 - 01:47
#permalink

Вот злюка! Флэнэган - действительно классную книгу написал, и авторы сайта тоже супер - они, между прочим, друг друга не умоляют, а дополняют. Зачем же стулья ломать?!
Не надо никому всякую хрень желать, ненароком сам напорешься...


Автор: iyntx, дата: 21 июля, 2011 - 01:38
#permalink

в приведённых Вами учебниках много ненужной воды. Лучше суть понять читая такие краткие и понятные статьи, а уж потом читать макулатуру, уже отталкиваясь от уже уяснённой модели.


Автор: wyvern (не зарегистрирован), дата: 2 ноября, 2010 - 17:56
#permalink

Мне кажется, проще сказать, что свойства в JavaScript аналогичны свойствам в любом объектно-ориентированном языке. С тем исключением, что иногда свойства получают те же значения, что и атрибуты. Но не всегда.
И еще мне кажется, что лучше пользоваться этой связью насколько возможно меньше. Атрибуты получать и устанавливать через getAttribute и setAttribute соответственно, в обход свойств. Меньше путаницы в итоге получится.


Автор: iyntx, дата: 21 июля, 2011 - 01:34
#permalink

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


Автор: Игорь75 (не зарегистрирован), дата: 14 декабря, 2009 - 11:33
#permalink

Вот теперь понятно))) Краткость - сестра таланта. Спасибо за пояснение. Огромное Спасибо Автору))


Автор: Гость (не зарегистрирован), дата: 11 апреля, 2013 - 14:18
#permalink

Спасибо за 1-вый комментарий!Теперь точно понял.


Автор: Гость (не зарегистрирован), дата: 13 сентября, 2013 - 03:59
#permalink

Вот тут Cy1on идеально всё объяснил. Со статьи сложно было понять, а после прочтения комментария стало всё ясно.


Автор: Гость (не зарегистрирован), дата: 17 августа, 2009 - 11:12
#permalink

Отличная статья!
Я легко и быстро понял разницу.
Это именно то, что нужно.


Автор: Hank (не зарегистрирован), дата: 16 июня, 2020 - 21:38
#permalink

awesome, thanks for sharing this. fence companies springfield mo


Автор: Гость (не зарегистрирован), дата: 16 июня, 2020 - 22:43
#permalink

Автор: Kolyaj, дата: 27 августа, 2009 - 22:15
#permalink

Тема IE не раскрыта, первый пример из раздела "Название атрибута не зависит от регистра" в ИЕ выведет как раз таки 1, а не 5.

Кто хочет раскрыть для себя особенности работы IE со свойствами и атрибутами, читать http://xpoint.ru/know-how/JavaScript/Atributyi?8


Автор: Илья Кантор, дата: 28 августа, 2009 - 08:23
#permalink

Улучшил раскрытие темы IE в статье, добавил соответстсвующий пример.


Автор: Гость (не зарегистрирован), дата: 16 октября, 2009 - 16:11
#permalink

У меня Windows 7 + IE 8

document.body.setAttribute('v',{a:5})
alert(document.body.getAttribute('v'))  // "[object Object]" в Firefox
alert(document.body.getAttribute('v').a) // 5 в IE

IE8 (сборка 7100) выдал не 5, как в примере, а undefined, как и firefox 3.5.3


Автор: Илья Кантор, дата: 16 октября, 2009 - 21:56
#permalink

Да, там это правили. Пофиксил в статье, спасибо.


Автор: Гость (не зарегистрирован), дата: 12 ноября, 2009 - 13:22
#permalink

Здравствуйте.
У меня для "левого" атрибута вывел значение SomeValue, а не undefined.
Это нормально?


Автор: Гость (не зарегистрирован), дата: 3 января, 2010 - 12:01
#permalink

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

document.body.abc = 1
document.body.ABC = 5
alert(document.body.abc) // => все еще 1

Автор: iyntx, дата: 21 июля, 2011 - 06:48
#permalink

в примере выше Вы оперируете свойствами.
Автор имеет в виду, что не гарантированно, что
если у вас в хтмл-коде написано:

<a <strong>balalayka</strong>="<em>mumu</em>">lalala</a>

то
alert(document.getelementbytag('a').balalayka) выдаст Вам mumu


Автор: Леонид Розенблюм (не зарегистрирован), дата: 7 января, 2010 - 15:49
#permalink

В примере

document.body.setAttribute('v',{a:5})
alert(document.body.getAttribute('v')) // "[object Object]" в Firefox
alert(document.body.getAttribute('v').a) // 5 в IE

Как [object Object] доказывает что Firefox преобразовал объект в строку?


Автор: BlueIce, дата: 9 января, 2010 - 13:02
#permalink

Функция Object.prototype.toString() возвращает результат в виде [object, классОбъекта]. Соответственно для объекта {a:5} toString() вернул [object Object]. Ссылка на спецификацию


Автор: reutovo, дата: 24 апреля, 2010 - 15:21
#permalink

alert(typeof document.body.getAttribute('v'))


Автор: Misha_White (не зарегистрирован), дата: 16 февраля, 2010 - 20:54
#permalink

Достаточно непонятно.... Sad

document.body.setAttribute('v',{a:5})
alert(document.body.getAttribute('v'))  // "[object Object]" в Firefox
alert(document.body.getAttribute('v').a) // 5 в IE

А если в FF написать alert(document.body.getAttribute('v').a) ? Мне кажется, что будет 5...


Автор: Максим Грач (не зарегистрирован), дата: 17 февраля, 2010 - 12:03
#permalink

А я столкнулся вот с чем:
В html есть, например, элемент

Данный пример не корректно работает в ИЕ (атрибут class="head" появляется, но не вступает в силу), зато работает во всех остальных браузерах:

var e = document.getElementById('title');
e.setAttribute('class', 'head');

результат:

<p id="title" class="head">

Зато в ИЕ работает следующий код:

var e = document.getElementById('title');
e.setAttribute('className', 'link');

результат в ИЕ:

<p id="title" class="head">

результат в остальных браузерах:

<p id="title" classname="head">

Автор: Hesyo1960 (не зарегистрирован), дата: 31 октября, 2014 - 11:43
#permalink

может не 'link' a 'head'


Автор: leha-bot (не зарегистрирован), дата: 5 марта, 2010 - 19:57
#permalink

В IE также является исключением ключевое атрибут for, для него используется свойство forHtml.

В IE в теге label используется for для того, чтобы обозначить id элемента формы, который будет давать этому элементу фокус (т.е., щелкните на галочке, и пунктиром выделится не только она, но и надпись label с этим свойством)


Автор: NarKoZ (не зарегистрирован), дата: 9 июня, 2010 - 11:27
#permalink

Надо поправить статью! А точнее подкоректировать коментарии...

Здесь:
alert(document.body.getAttribute('v')) // "[object Object]" в Firefox
alert(document.body.getAttribute('v').a) // 5 в IE

В первой строке атрибуту присвоено значение-объект. Firefox тут же автоматически преобразовал его в строку. А IE, в нарушение стандартов, оставил атрибут объектом.

Если так, то должно быть так?:
// "[object Object]" в IE
// 5 в Firefox


Автор: nd-studio (не зарегистрирован), дата: 15 августа, 2010 - 17:33
#permalink

NarKoZ, Вы не правы.
Как ранее написал BlueIce, "[object Object]" - это не указание на то, что перед нами объект, а лишь результат преобразования элемента в строку (читайте выше).
А вот строка
alert(document.body.getAttribute('v').a) // 5 в IE
как раз указывает на существование объекта document.body.getAttribute('v').a.


Автор: Читатель (не зарегистрирован), дата: 24 августа, 2010 - 11:09
#permalink

Не хватает конкретных примеров. Всё равно до конца не понятно отличие свойств и атрибутов. Что и в каких случаях лучше с точки зрения стандартов использовать: свойства или атрибуты? Например: id, class, style... Работает и через свойства, и через атрибуты. выше более-менее конкретно написал насчёт атрибутов. Это действительно так? И когда нужно применять не атрибуты, а свойства? Хотелось бы увидеть конкретные примеры, а не описание, в каких случаях они друг друга заменяют, а в каких нет.


Автор: Noise (не зарегистрирован), дата: 10 декабря, 2010 - 12:45
#permalink

Но создатели javascript решили (с лучшими намерениями) запутать ситуацию и создать искусственное соответствие между свойством и атрибутом.

По-моему разработчики javascript ничего не запутали. Запутывает скорее статья.


Автор: mxm (не зарегистрирован), дата: 6 января, 2011 - 21:15
#permalink

Немного "тупой" вопрос - если есть страница с примененными к ней CSS стилями, то, чтобы прочитать значение заданное стилем для тега (например: div {width: 400px}), надо использовать обращение к атрибутам (getAttribute(name))?


Автор: Гость (не зарегистрирован), дата: 16 января, 2011 - 17:42
#permalink

Вот этот пример, к слову, в IE8 выдаёт результат '1'.

document.body.setAttribute('abc', 1)
2
document.body.setAttribute('ABC', 5)
3
alert(document.body.getAttribute('abc')) // => стало 5

Может, потому что это не стандартное свойство? Или очередной косяк эксплорера?


Автор: Вопрашатель (не зарегистрирован), дата: 9 февраля, 2011 - 01:44
#permalink

А у меня такой вопрос-не совсем в тему.
Я желаю расширить функционал некоторых элементов,например Table и т.д.,добавив новые свойства и атрибуты.
Но известно,что Javscript и Dom-направление развиваются,изменяется,соответственно и интерпретатор Javascript Браузеров
Что если в следующей спецификации Javascript имя нового свойства какого-нибудь элемента будет совпадать с именем моего пользовательского атрибута или свойства?Тогда сайт будет некорректно работать?То есть в одно прекрасно утро мой сайт просто перестанет работать...А мне придется переделать кучу кода.(А я планирую сделать несколько "весомых" сайтов.
Как избежать такой проблемы?


Автор: Илья Кантор, дата: 9 февраля, 2011 - 02:26
#permalink

Не надо так делать. Пишите свои функции и библиотеки, но собственные свойства у встроенных объектов - давно моветон.


Автор: Вопрошатель (не зарегистрирован), дата: 9 февраля, 2011 - 09:56
#permalink

Правильно ли я Вас понял,что лучше разработать свой собственный элемент типа table(что безусловно является трудоемким процессом,тем более что это будет практически его копия-что представляется сверхиррациональным-в плане развития языков высокого уровня) ради избежания вышеописанной проблемы?Или на худой конец лучше как то обойтись без создания собственных элементов но и одновременно не расширять функционал стандартных элементов(что приведет зачастую к сильному усложнению логики кода,как и его объема)?


Автор: Отори (не зарегистрирован), дата: 26 февраля, 2011 - 12:45
#permalink

Этот вопрос и впрямь намного более общий, чем рассуждение о DOM и Javascript.
Есть ровно два соображения по этому поводу.
Во-первых, для создания продуктов следует использовать среду, облегчающую массовое переименование.
Во-вторых, не стоит экономить на названиях свойств, атрибутов, функций и чего угодно ещё. Например, в название атрибута можно включить название сайта или собственный ник разработчика. Вряд ли творцам спецификаций придёт в голову использовать Ваш ник при очередном дополнении языка Javascript. :-)


Автор: Гость (не зарегистрирован), дата: 20 апреля, 2011 - 08:44
#permalink

Спасибо, толково расписал сложный вопрос!


Автор: Гость (не зарегистрирован), дата: 23 июня, 2011 - 18:13
#permalink

Ёмоё, ну правда, запутано
"Узлы DOM являются объектами с точки зрения javascript. А у объектов есть свойства. Поэтому любому узлу можно назначить свойство, используя обычный синтаксис."
Смысл написанно: Узлы DOM являются объектами с точки зрения javascript. А у объектов есть свойства. Поэтому любому узлу можнозадать значение какого либо из имеющихся свойств, используя обычный синтаксис.
Я правильно понял?

P.S. Кстати таких логических ловушек (с неоднозначной трактовкой) много. Понятно дело усвоение материала страдает.


Автор: Гость (не зарегистрирован), дата: 23 июня, 2011 - 19:02
#permalink

Комментарий "Автор: Cy1on (не зарегистрирован), дата: 30 июля, 2009 - 15:20 " практически полностью расшифровывает всю путаницу в статье. Было бы прекрасно если б автор статьи "отрехтовал" статью (всю статью) со смыслом этого комментария. Или где либо (в логически обоснованном месте статьи) вставил данный комментарий полностью. От себя: возможно комментарий нужно доработать, например "Свойство - это атрибут узаконенный (закрепленный спецификацией, занесённый в спецификацию как неотъемлемое описание узла-элемента) с четко зафиксированным смыслом на который указывает названием (имя) данного свойства и возможными (а иногда фиксированными) значениями .... и т.д."


Автор: Гость (не зарегистрирован), дата: 29 июля, 2011 - 20:19
#permalink

document.body.setAttribute('abc', 1)
document.body.setAttribute('ABC', 5)

// IE пытается уравнять свойства и атрибуты
alert(document.body.abc) // => 1
alert(document.body.ABC) // => 5

// но getAttribute выбирает первое попавшееся свойство
// за вычетом регистра букв
alert(document.body.getAttribute('abc')) // => 1
alert(document.body.getAttribute('ABC')) // => 1

Мой FF версии 5.0 выдает пустыми первые два окошка и пятерки в следующих двух. По-моему что-то не так)


Автор: garf (не зарегистрирован), дата: 10 августа, 2011 - 10:57
#permalink

Не понял, тут все перемешано насчет свойства и атрибута. Конкретно, что имеется ввиде под свойством и атрибутом?


Автор: RX200, дата: 6 сентября, 2011 - 19:19
#permalink

В FF столкнулся с такой вот проблемой:
Создаю программно(В скрипте) миню(XUL), В меню нужно выдилить строку, непрограмно это так выглядит

<menuitem label="Добавить" disabled="true"/>

Так вот, програмно создав минюшку, програмно добавляю этот атрибут, потом програмно меняю свойство disabled и всё(((( Больше через свойства доступа нет, выходит так что есть отдельно свойство и отдельно атрибут с одинаковыми именами. Всё дело в том что браузер не успел создать свойство, по подобию атрибута, а точнее несоздавал его, потому что он создаёт свойство только при визуализации меню.
Если например после создания менюшки в скрипте, я мышкой повожу на меню посмотрю его, а потом уже меняю свойство то всё работает так как мне надо, свойство и атрибуты скреплены) Но если я создам атрибут, а потом хоть что буду делать но непосмотрю визуально менюшку, и начну править свойство то создастся обсолютно независимое свойство. Конечно я могу программно просто править атрибуты, но мне интересно есть ли какой способ заставить браузер с помощью скрипта синхранизировать атрибуты и свойства??? и/или как напрямую привязать атрибут к свойству??


Автор: olga153b, дата: 18 сентября, 2011 - 14:29
#permalink

Атрибут - это строка (кроме IE)
Следующий код это наглядно демонстрирует:
document.body.setAttribute('v',{a:5})
alert(document.body.getAttribute('v')) // "[object Object]" в Firefox
alert(document.body.getAttribute('v').a) // 5 в IE

скажите плз что означает VS

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

и второй вопрос что означает "[object Object]"
где об этом написано?


Автор: Гость (не зарегистрирован), дата: 30 сентября, 2011 - 14:54
#permalink

VS - это тоже самое что 'и', '&', 'And'
VS как бы объединяет текст или значение (Смысл)

Потап VS Настя Каменски
Потап и Настя Каменски.


Автор: Гость (не зарегистрирован), дата: 2 октября, 2011 - 08:25
#permalink

vs (иногда с точкой иногда без точки) сокращение от латинского слова versus (против). Так что Потап против Насти


Автор: Гость (не зарегистрирован), дата: 19 сентября, 2012 - 16:25
#permalink

а можно ли как нибудь узнать какие у элемента есть атрибуты (к примеру в виде массива)?


Автор: Гость (не зарегистрирован), дата: 22 сентября, 2012 - 18:49
#permalink

статья на мой взгляд не очень


Автор: Godson (не зарегистрирован), дата: 5 октября, 2012 - 22:40
#permalink

В сафари с айпада данный код работает иначе

document.body.setAttribute('abc', 1)
document.body.setAttribute('ABC', 5)
alert(document.body.abc) // => 1
alert(document.body.ABC) // => 5
// но getAttribute выбирает первое попавшееся свойство
alert(document.body.getAttribute('abc')) // => 1
alert(document.body.getAttribute('ABC')) // => 1
Get attribute сафари выбрал первый, потом заменил вторым, и первые два значения свойства он выдал как undefined, а остальным двум атрибутам он присвоил 5 так как оно было последним значением аттрибута.

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


Автор: romankrv, дата: 17 ноября, 2012 - 13:27
#permalink

Вот тут вы говорите чтобы отказаться от использования аттрибутов
Но как же dojo там одни аттрибуты

<div dojoType="dijit.form.Button" connectId="pool" data-dojo-props="onClick:setAttributes"></div>

и далее по списку

Вы чего серьезно отказаться решили


Автор: Гость (не зарегистрирован), дата: 15 февраля, 2013 - 14:51
#permalink

Почему все примеры "однобокие" и завязаны за дескриптором body? А если нужно получить или задать атрибуты у другого тэга


Автор: Гость (не зарегистрирован), дата: 18 апреля, 2013 - 10:17
#permalink

Молодец.


Автор: Гость (не зарегистрирован), дата: 2 сентября, 2013 - 09:46
#permalink

elem.mySuperProperty = 5
Это свойство. Как узнать, что это не атрибут?
Атрибуты можно назначать только через метод setAtribute?


Автор: Гость (не зарегистрирован), дата: 31 марта, 2014 - 23:23
#permalink

отличная статья , все четко и понятно


Автор: Гость (не зарегистрирован), дата: 23 октября, 2014 - 11:04
#permalink

Интересная статья. Вопрос: как поймать событие установки объекту атрибута. Например, disable для

? как через setAttributes, так и css.


Автор: Гость (не зарегистрирован), дата: 23 октября, 2014 - 11:06
#permalink

тэг < "div" > сожрал


Автор: pitonium (не зарегистрирован), дата: 19 мая, 2015 - 15:50
#permalink

Здравствуйте! Может я не в тему спрошу. Заранее извините. Как в document.body.setAttribute('abc', 1), вместо 'abc' подставить значение переменной. Например:

$name_attrib="id_elem";
document.body.setAttribute($name_attrib, 1);

Так не работает.


Автор: mee too (не зарегистрирован), дата: 1 октября, 2015 - 08:29
#permalink

>Автор: Бо (не зарегистрирован), дата: 20 октября, 2011 - 10:34 #permalink
>Статья, норм, автору зачот!
>Но если говорить откровенно, для того чтобы понять разницу между атрибутом и >свойством достаточно знать, что у объекта есть свойства а у тэга - атрибуты.
>Т.е. если рассматривать тэг то id это атрибут(как сказал бы автор:"Это же >HTML..."), а если рассматривать объект а DOM , то id это свойство (как сказал бы >автор: "Это же javascript...")

т.е. пока HTML нераспарсен (не преобразован) в DOM модель броузера:
HTML - состоит из тегов содержащих атрибуты,

после преобразования HTML в модель DOM - броузер содержит объекты со свойствами доступными через javascript.

т.е. свойства объектов DОМ модели заполняются (проецируются) из атрибутов тегов HTML.

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


Автор: Разработчик (не зарегистрирован), дата: 12 июня, 2018 - 21:11
#permalink

Где-то уже видел материал похожий, посмотрите здесь. Спасибо!


Автор: jameszen (не зарегистрирован), дата: 28 сентября, 2021 - 13:46
#permalink

I have some suggestions for you here. You will be satisfied for sure fall guys free


Автор: Гость (не зарегистрирован), дата: 5 февраля, 2022 - 03:23
#permalink

he motive of providing accounts of all ranges on our platform is to give customers what they demand and what they deserve.
csgo accounts


Автор: 바카라 (не зарегистрирован), дата: 2 апреля, 2022 - 13:28
#permalink

Great post 쿨카지노! I am actually getting 쿨카지노주소ready to across this information 바카라, is very helpful my friend 슬롯. Also great blog here 안전놀이터 with all of the valuable information you have 잭팟. Keep up the good work 메이저사이트 you are doing here 메이저놀이터. 슬롯머신


Автор: 바카라 (не зарегистрирован), дата: 2 апреля, 2022 - 13:28
#permalink

Great post 쿨카지노! I am actually getting 쿨카지노주소ready to across this information 바카라, is very helpful my friend 슬롯. Also great blog here 안전놀이터 with all of the valuable information you have 잭팟. Keep up the good work 메이저사이트 you are doing here 메이저놀이터. 슬롯머신


Автор: Гость (не зарегистрирован), дата: 13 апреля, 2022 - 07:26
#permalink

Автор: Ufa1688 (не зарегистрирован), дата: 10 июня, 2022 - 14:28
#permalink

The facility, ufa168 one of the ufabet เข้า สู่ระบบ largest LNG aff 1688 export plants in บาคาร่า the United States,หวยออนไลน์ is expected to shut down UFA1688 for at least three weeks ทางเข้า Ufa 1688 in the wake of the explosion Big gaming and fire, injecting further chaos สล็อต ufa1688 into global energy markets already แทงบอล168 roiled by Russia’s war on Ukraine.


Автор: 123VEGA (не зарегистрирован), дата: 11 июня, 2022 - 09:13
#permalink

Saxon Mullins


Автор: 123VEGA (не зарегистрирован), дата: 11 июня, 2022 - 09:15
#permalink

Saxon Mullins 123VEGA says she once had PRAGMATIC PLAY romantic dreams of what her 'first time' would ICONIC GAMING be like. In none was หวยปิงปอง she paralysed by fear in a Sydney ปั่นสล็อต alleyway, aged 18, with a


Автор: Iam1688 (не зарегистрирован), дата: 11 июня, 2022 - 09:16
#permalink

Pablo Sarabia scored บาคาร่า 1688 the only goal as Spain allbet deservedly beat Switzerland for sa gaming their first win of the ทางเข้าlive22 Nations League.Sarabia slid home Marcos dreamgaming Llorente's cross in a goal which was สล็อต1688 allowed to stand after a video เซ็กซี่เกม assistant referee review for offside.The Swiss hadlive22 เข้าสู่ระบบหน้าเว็บ two late chances in Geneva, with Breel ราคาฟุตบอล Embolo lobbing wide and Djibril Sow's last-second volley being blocked.Spain are on five points เซ็กซี่บาคาร่า from three games in Group A2.


Автор: Ufa1688 (не зарегистрирован), дата: 14 июня, 2022 - 12:26
#permalink

Israel withdrew ufa1688 from Gaza in 2005 but, ufabet เข้า สู่ระบบ with the help of Egypt, clamps 1688.com down on the borders of the ทางเข้า Ufa 1688 enclave now governed by แทงบอลออนไลน์ Hamas Islamists. Dream Gaming Palestinian Big gamingauthorities have limited self-rule ลิงค์รับทรัพย์ in the West Bank บาคาร่าwhich is dotted หวยออนไลน์with Israeli settlements.


Автор: lol beans (не зарегистрирован), дата: 15 июня, 2022 - 06:18
#permalink

This is a great site where I can find articles that help me a lot, and give me a great experience, thank you.


Автор: 123VEGA (не зарегистрирован), дата: 23 июня, 2022 - 08:21
#permalink

Fina, swimming's world 123VEGA governing body, has voted to หวยปิงปอง stop transgender athletes ปั่นสล็อต from competing in women's สูตรสล็อต elite races if they have ALLBET gone through 123GOAL any part of the process 88KTC of male puberty. Fina will also aim to establish FC SLOT an 'open' category at AMB CASINO competitions for swimmers whose gender identity 11HILO is different than their birth sex.


Автор: เว็บตรง ไม่ผ่านเอเย่น (не зарегистрирован), дата: 27 июня, 2022 - 18:02
#permalink

เว็บตรง ไม่ผ่านเอเย่น เชื่อถือได้ ปลอดได้ ไม่มีโกงต้องที่นี่ สล็อต ตอบโจทย์ความต้องการได้ดีอย่างมากทั้งเรื่องของการเงินการเดิมพันที่หลากหลาย เพื่อเป็นการยกฐานะการให้บริการให้ดีขึ้นไป


Автор: 123VEGA123 (не зарегистрирован), дата: 30 июня, 2022 - 08:26
#permalink

Fossilised remains belonging JILI SLOT to some of humanity's oldest PRAGMATIC PLAY ancestors are far older than scientists had originally ปั่นสล็อต thought, new research says. The fossils, including หวยปิงปอง one belonging to ancient cave 123VEGA woman Mrs Ples, were buried for 11HILO millennia in South African AMB CASINO caves known as the Cradle of Humankind. Modern testing methods FC SLOT now suggest the group of early humans roamed the 88KTC earth between 3.4 and 3.7 million years ago. This new timeline could reshape common 123GOAL understandings of human evolution.


Автор: Гость (не зарегистрирован), дата: 12 июля, 2022 - 11:17
#permalink

Israel's military has เครดิตฟรี been carrying out arrest raids in the 123VEGA occupied West Bank - a frequent event ลิงค์รับทรัพย์ since a wave of deadly attacks สูตรสล็อต by Palestinians against Israelis earlier สล็อตออนไลน์ this year. Dozens of Palestinians, mainly militants, have been killed during army slotxo incursions, and the UN’s human rights office has raised concerns สล็อต over “excessive force” and “possible สูตรบาคาร่า collective punishment”. Israel has 88KTC rejected such accusations.The focus has been on Jenin refugee camp, home to several militant 123GOAL groups and where attackers have come from.


Автор: run 3 (не зарегистрирован), дата: 14 июля, 2022 - 11:03
#permalink

I appreciate you taking the time to discuss it since I have strong opinions regarding it and I want to find out more information about it. Could you perhaps add some details to the post you made on your blog? It will actually be to our collective advantage. run 3


Автор: 123VEGA123 (не зарегистрирован), дата: 22 июля, 2022 - 07:07
#permalink

The Rajapaksa 123VEGA brothers, Mahinda and Gotabaya, were JILI SLOT hailed by many as heroes for winning the บาคาร่า civil war but are now reviled ALLBET as leaders. It's a dramatic fall from grace หวยปิงปอง for a family that has dominated Sri Lankan politics for more than a decade. Mahinda Rajapaksa 123GOAL was once celebrated by the majority Sinhalese as a hero slotxo for bringing an end to nearly three decades 88KTC of civil war when the Tamil Tiger rebels were สูตรบาคาร่า crushed in 2009 during his first term as president. His father was สล็อต a parliamentarian and Mahinda gradually rose from opposition leader in parliament to prime minister in 2004.


Автор: Гость (не зарегистрирован), дата: 28 июля, 2022 - 12:46
#permalink

"I can be naked 123VEGA in front of a thousand people… It's just that they get uncomfortable," Bollywood ลิงค์รับทรัพย์ star Ranveer Singh told the Paper magazine recently. That เครดิตฟรี is exactly what happened when สูตรสล็อต Singh recently posed nude for a photo spread สล็อตออนไลน์ in the same magazine. Social สล็อต media exploded with both appreciation 88KTC and indignation - but mostly the slotxo latter. Memes and jokes making fun of the pictures abounded; and 123GOAL many accused the actor of denigrating men. If this was not enough, a police 11hilo complaint was lodged against him for "hurting the sentiments of women".


Автор: Гость (не зарегистрирован), дата: 2 августа, 2022 - 07:23
#permalink

"I can be naked 123VEGA in front of a thousand people… It's just that they get uncomfortable," Bollywood ลิงค์รับทรัพย์ star Ranveer Singh told the Paper magazine recently. That เครดิตฟรี is exactly what happened when สูตรสล็อต Singh recently posed nude for a photo spread สล็อตออนไลน์ in the same magazine. Social สล็อต media exploded with both appreciation 88KTC and indignation - but mostly the slotxo latter. Memes and jokes making fun of the pictures abounded; and 123GOAL many accused the actor of denigrating men. If this was not enough, a police 11hilo complaint was lodged against him for "hurting the sentiments of women".


Автор: dnamic (не зарегистрирован), дата: 23 августа, 2022 - 18:54
#permalink

Incredible points. Solid arguments. Keep up the amazing work.


Автор: dnamic (не зарегистрирован), дата: 23 августа, 2022 - 18:57
#permalink

Superb blog! Do you have any tips for dnamicnetwork.com aspiring writers? I'm hoping to start my own website soon. jasa pembuatan website profesional Would you recommend starting with a free platform like Wordpress or go for a paid option? jasa seo tangerang There are so many options out there that I'm completely overwhelmed .. Any recommendations? Appreciate it! jasa seo murah


Автор: Jane Padilla (не зарегистрирован), дата: 26 августа, 2022 - 05:49
#permalink

Play slope 2 unblocked and other html5 games on our website. Have fun with your buddies and don't be dull. The gameplay is basic, like other genre games. The player must direct a ball again. He must be cautious to maintain control. Simple game interface. It's green, black, and red.


Автор: Гость (не зарегистрирован), дата: 27 августа, 2022 - 11:25
#permalink

The previous Taliban 123VEGA regime, in the 1990s, severely curtailed ลิงค์รับทรัพย์ women's freedom - and since the takeover เครดิตฟรี of power by the Taliban last year, a series of restrictions สูตรสล็อต have been re-imposed on women สล็อตออนไลน์ in Afghanistan. Regulations สล็อต on clothing and laws forbidding 88KTC access to public areas without a male guardian have slotxo been enforced. In March, schools re-opened for a new academic year, but the Taliban 123GOAL reversed an earlier promise and girls are currently not 11hilo permitted to attend secondary school.


Автор: 먹튀검증사이트 (не зарегистрирован), дата: 29 августа, 2022 - 07:24
#permalink

I’m writing on this topic these days, , but I have stopped writing because there is no reference material. Then I accidentally found your article. I can refer to a variety of materials, so I think the work I was preparing will work! Thank you for your efforts. 먹튀검증사이트


Автор: 안전놀이터 (не зарегистрирован), дата: 29 августа, 2022 - 07:26
#permalink

I don’t know how many hours I’ve been searching for a simple article like this. Thanks to your writing, I am very happy to complete the process now.안전놀이터


Автор: 먹튀검증업체 (не зарегистрирован), дата: 29 августа, 2022 - 07:26
#permalink

Good day! This post could not be written any better! Reading this post reminds me of my previous room mate! He always kept chatting about this. I will forward this page to him. Pretty sure he will have a good read. Thanks for sharing. 먹튀검증업체


Автор: Гость (не зарегистрирован), дата: 30 августа, 2022 - 17:32
#permalink

pizda iz govna


Автор: 온라인카지노 (не зарегистрирован), дата: 28 сентября, 2022 - 07:03
#permalink

First of all, thank you for letting me see this information. I think this article can give me a lot of inspiration. I would appreciate 온라인카지노 if you could post more good contents in the future.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
4 + 12 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum