2015-05-06 4 views
6

Я использую данные атрибуты в HTML-элементахНужно ли проверять, имеет ли элемент атрибут?

Пример:

<div class="fruit" data-color="red">...</div> 

В JQuery я получаю данные атрибуты с помощью $(this).data("color") и добавив, что имеет имя класса для элемента.

Нужно ли сначала проверять, существует ли атрибут данных, прежде чем добавлять его в класс? Пример:

// $(this) is .fruit div 
if ($(this).data("color")) { 
    $(this).addClass($(this).data("color")); //adds data value as class to element 
} 

или обрабатывает jQuery? Я попытался запустить код без инструкции if, и я не получаю никаких ошибок, если элемент не имеет атрибута "color" data. Я предполагаю, что jQuery просто игнорирует его.

ответ

5

jQuery обрабатывает это для вас - на самом деле он очень надежный в том, что он примет для большинства параметров метода, не бросая никаких ошибок.

В этом случае, если атрибут data не найден (или не имеет значения), он вернет undefined. Если вы тогда addClass(undefined) jQuery не будет выполнять никаких действий над выбранными элементами.

Смежные вопросы