Как бы добавить атрибут к элементу, если этот элемент еще не имеет этого атрибута?Добавить атрибут, если он еще не существует
if (' this does not have class=selected') {
$(this).addClass('selected');
}
Как бы добавить атрибут к элементу, если этот элемент еще не имеет этого атрибута?Добавить атрибут, если он еще не существует
if (' this does not have class=selected') {
$(this).addClass('selected');
}
Если вы говорите конкретно о классах, то просто идти вперед и добавить его. Если он уже существует, он не будет добавлен дважды.
$(this).addClass('selected'); // will only add the class if it doesn't exist
Я сомневаюсь, что первое тестирование для класса было бы более эффективным.
if(!$(this).attr('name')) {
$(this).attr('name', 'value');
}
, что должен сделать это.
Я просто пробовал это, как и то, что хочу, но не мог заставить его работать, если (! $ (This) .attr ('placeholder')) { $ (this) .attr ('placeholder', 'c'); } –
Документация jQuery - ваш друг! :) http://api.jquery.com/category/css/
Вы, вероятно, ищете HasClass
http://api.jquery.com/hasClass/
$('#mydiv').hasClass('foo')
Вы можете использовать атрибут не селектор. Это работает не только для классов, но и для любого атрибута
if($('#elemid[class!="myclass"]').length) {
$('#elemid').addClass('otherClass');
}
Конечно, как упоминалось ранее, если вы хотите добавить класс вашей проверки против, просто добавьте его. В этом нет вреда.
Нет необходимости проверять и видеть, присутствует ли класс перед добавлением класса. Просматривая источник jQuery (https://github.com/jquery/jquery/blob/master/src/attributes.js, ищите addClass
), похоже, что addClass
ничего не сделает, если класс уже присутствует. Поэтому сначала не нужно проверять проверку.
Вы имеете в виду класс конкретно или какой-либо атрибут? Потому что вы можете вызывать .addClass() столько раз, сколько хотите. – n8wrl
И что не добавит дубликат? – David542
Не имеет значения, если это дубликат. Либо элемент имеет класс, либо нет; если он имеет один и тот же класс более одного раза, с точки зрения Javascrcipt и DOM, у него есть класс. –