jQuery正在为每个类添加样式,而我说不要这样做

jQuery is adding styles to every class, when I said not to

本文关键字:这样做 样式 添加 jQuery      更新时间:2023-09-26

我设置了一个名为"sel"的数据属性,下面的jQuery请求值为"true"的数据sel,但它将其添加到每个类中,即使是没有"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>

如何防止if申请到每一个班级?

尝试解决:

•我试过这个:

$(".slide").not(selTrue).css({'display': 'none'});

仍然没有解决我的问题


Fiddle

为了根据您的数据属性进行选择,您需要使用

$(".slide[data-sel='true']").css({'display': 'inline-block'});

实际上,您要做的是使用slide类选择所有元素,然后设置它们的data-sel属性。

这是文件

http://api.jquery.com/attribute-equals-selector/

$(".slide").each(function () {
    if ($(this).data("sel") === true) {
        $(this).css({'display': 'inline-block'});
    }
});

您正在使用将数据sel属性设置为true

$(".slide").data("sel", 'true');
var selTrue = $(".slide").data("sel", 'true');

这样做的目的是获取所有带有类"slide"的div,并为它们上的键"sel"设置值"true"。所以selTrue是一个由类为.slide的所有div组成的jQuery数组。然后为数组中的所有元素(页面上的4个div(设置display: inline-block

您想做的是:$('.slide[data-sel = "true"]').css('display', 'inline-block')

方括号表示基于属性的查询。

相关文章: