Вы ответили на свой вопрос в первой строке.
Я пытаюсь использовать функцию prop () для добавления пользовательского атрибута
prop()
устанавливает свойства , и не существует такой вещи, как ' пользовательское свойство '. Если вы хотите создать собственный атрибут , используйте attr()
- однако я бы посоветовал против этого, так как это плохая практика.
Гораздо лучшая идея - хранить пользовательскую информацию в атрибуте data
. Другими словами, используйте data()
var $header = $('#header-main');
if ($header.data('error')) {
// do something
} else {
$header.data('error', true).html('Changes some text');
}
Могу ли я включить это без CSS? Сейчас я использую правила CSS, такие как #header-main[error]
Следует отметить, что метод data()
в jQuery вообще не влияет на DOM. Поскольку вам требуются обновления DOM, чтобы ваш селектор атрибутов CSS работал, вместо него используйте attr('data-error')
:
var $header = $('#header-main');
if ($header.attr('data-error') == 'true') { // ugly comparison, but not much we can do about it
// do something
} else {
$header.attr('data-error', 'true').html('Changes some text');
}
#header-main[data-error] {
color: #C00;
}