Я установил атрибут данных, называемый "sel", и следующий jQuery запрашивает данные sel, который имеет значение "true", но он добавляет его в каждый класс, даже те, которые не имеют "data-sel" '
JQuery:
var selTrue = $(".slide").data("sel", 'true');
$(selTrue).css({'display': 'inline-block'});
HTML:
<div class='slide' data-sel='true'>1</div>
<div class='slide' data-sel='true'>2</div>
<div class='slide'>3</div>
<div class='slide'>4</div>
Как предотвратить использование приложения для каждого класса?
Попытка решить:
• Я пробовал это:
$(".slide").not(selTrue).css({'display': 'none'});
еще не решила мою проблему
Чтобы выбрать против вашего атрибута данных, вам необходимо использовать
$(".slide[data-sel='true']").css({'display': 'inline-block'});
то, что вы делаете, фактически выбирает все элементы с классом slide
, а затем устанавливает атрибут data-sel
.
здесь документация
$(".slide").each(function () {
if ($(this).data("sel") === true) {
$(this).css({'display': 'inline-block'});
}
});
Вы устанавливаете атрибут data-sel равным true.
$(".slide").data("sel", 'true');
var selTrue = $(".slide").data("sel", 'true');
То, что это делает, - это получить все div с классом "слайд" и установить для них значение "true" для ключевого "sel". Таким образом, selTrue
является массивом jQuery всех .slide
с классом .slide
. А затем вы устанавливаете display: inline-block
для всех элементов в массиве (4 divs на странице).
Что вы хотите сделать: $('.slide[data-sel = "true"]').css('display', 'inline-block')
Квадратные скобки указывают запрос на основе атрибута.
selTrue == $(".slide")
.