1. Определение
Собственность: свойство, все элементы HTML представлены типом HTMleLement. Тип HTMleLement непосредственно наследует от элемента и добавляет некоторые атрибуты. Добавленные атрибуты соответствуют каждому элементу HTML со следующими 5 стандартными характеристиками: ID, заголовок, Lang, Dir, ClassName. Узел DOM - это объект, поэтому он может добавлять пользовательские свойства и методы, такие как другие объекты JavaScript. Значением свойства может быть любой тип данных, который является чувствительным к случаям, и пользовательское свойство не будет отображаться в коде HTML, но существует только в JS.
Атрибут: функция, отличная от свойства, атрибут может быть строкой, нечувствительной к случаям, появляется в Innerhtml, и все атрибуты могут быть перечислены через атрибуты массива классов.
2. Сходство
Стандартные свойства DOM синхронизируются с атрибутами. Признанный (не клиент) атрибут добавляется в объект DOM в качестве свойства. Например, ID, выравнивание, стиль и т. Д. В настоящее время свойства могут работать с помощью рабочих свойств или методов DOM, таких как getAttribute (), которые используют характеристики операции. Тем не менее, имя атрибута, передаваемое getAttribute (), такое же, как и имя атрибута. Поэтому при получении характерного значения класса вы должны пройти в «класс».
3. Различия
1). Для некоторых стандартных характеристик существует разница в значениях, полученных Getattribute и Point (.). Такие как HREF, SRC, стоимость, стиль, онклик и другие обработчики событий.
2) .href: getattribute получает фактическое значение HREF, в то время как точки получают полный URL, который имеет разницу в браузерах.
Кода -копия выглядит следующим образом:
<Скрипт>
var a = document.body.children [0]
a.href = '/'
alert ('attribute:' + a.getattribute ('href')) // '/'
Alert ('Property:' + A.Href) // IE: '/', другие: полный URL
</script>
Значение SRC аналогично HREF, но IE также вернет полный URL;
Значение также обладает некоторыми встроенными свойствами для синхронизации «одностороннего» (одностороннего).
Например, input.value синхронизируется из атрибута (то есть свойство получает синхронизацию из атрибута)
Кода -копия выглядит следующим образом:
<input type = "text" value = "markup">
<Скрипт>
var input = document.body.children [0];
input.setattribute ('value', 'new');
оповещение (input.value); // 'new', input.value изменился
Alert (input.getAtrriobute (значение)); // 'новый'
</script>
Но атрибут не может получить синхронизацию от собственности:
Кода -копия выглядит следующим образом:
<input type = "text" value = "markup">
<Скрипт>
var input = document.body.children [0];
input.value = 'new';
alert (input.getAttribute ('value')); // 'Markup', не изменяется!
</script>
Getattribute получает начальное значение, в то время как точки получают начальное значение или измененное значение. Например, когда посетитель вводит определенные символы, атрибут «значение» поддерживает исходное значение после обновления свойства. Исходное значение можно использовать для проверки того, изменяется ли входные изменения или сбросить его.
Для обработчиков событий, таких как Style и Onclick, метод getAttribute возвращает строку при обращении, в то время как точка возвращает соответствующий объект и функцию обработчика событий.
Для проверенного свойства в входе
Кода -копия выглядит следующим образом:
<Скрипт>
var input = document.body.children [0]
Alert (input.cecked) // true
Alert (input.getAttribute ('cherced')) // Пустая строка
</script>
getAttribute получает значение, которое вы на самом деле настроите. Точка возвращает логическое значение.
Различия в совместимости браузера
1. В IE <9 браузеры вы можете использовать точечные номера и GetAttribute для доступа к пользовательским свойствам между собой.
2. IE <8 (включая режим совместимости IE8 IE7), свойство и атрибут одинаковы. Поскольку атрибут не чувствителен к случаям, в этом случае при использовании getattribute для доступа к функции браузер выберет значение, которое появляется в первый раз.
Кода -копия выглядит следующим образом:
document.body.abba = 1 // назначить свойство (теперь может прочитать его по Getattribute)
document.body.abba = 5 // назначить свойство с другим делом
// Должен получить имущество с именем «ABBA» в случае нечувствительного.
Alert (document.body.getattribute ('abba')) // 1
Приоритетное имущество
В фактических приложениях 98% операций DOM используют свойства.
Есть только две ситуации, которые требуют использования атрибутов
1. Настройте атрибуты HTML, потому что они не синхронизируются с свойством DOM.
2. Доступ к встроенным атрибутам HTML, которые не могут быть синхронизированы от свойства. Например, значение значения входного тега.