Можностей, предоставляемых веб-разработчикам



Pdf көрінісі
бет99/232
Дата06.01.2022
өлшемі5,47 Mb.
#12231
1   ...   95   96   97   98   99   100   101   102   ...   232


92  •  Глава 2
стым для написания, но также провоцирует техническую невалидность страниц. Так как 
для передачи пар «имя/значение» скриптам гораздо проще использовать 
data-shields=5

HTML5 вводит и стандартизует эту полезную, приближенную к реальности практику 
и предоставляет нам простой и стандартизированный API для доступа и манипулирования 
этими пользовательскими атрибутами.
Когда атрибуты 
data-*
 будут полностью поддерживаться браузерами, JavaScript сможет 
получать доступ к свойствам при помощи 
element.dataset.foo
 (где атрибут 
data-foo
 
содержит значение).
В настоящее время такое поведение поддерживается во всех браузерах, за исключением 
Internet Explorer, но и в этом случае вам может помочь плагин со страницы 
http://gist github 
com/362081
.
В ином случае скрипты могут получать доступ к значениям при помощи методов 
get/
setAttribute
. Преимущество свойства 
dataset
 по отношению к 
setAttribute
 состоит 
в том, что ему намного проще приписать числовые значения. Например, вам необходимо 
извлечь все значения, хранящиеся в атрибутах 
data-*
. Код, написанный с использовани-
ем встроенной функциональности, получается простым и понятным (данный пример не 
оптимизирован):
var values = [];
for (var key in element.dataset) {
    values.push(element.dataset[key]);
}
Однако современный вариант кода, хотя и дает такой же результат, не так понятен и до-
ступен неопытным разработчикам и людям, плохо знакомым с JavaScript и DOM:
var attributes = el.attributes,
    values = [];
for (var i = 0; i < attributes.length; i++) {
    if (attributes[i].name.indexOf('data-') === 0) {
        values.push(test.attributes[i].nodeValue);
    }
}


Достарыңызбен бөлісу:
1   ...   95   96   97   98   99   100   101   102   ...   232




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет