Javascript jQuery正在向每个类添加样式,而我说的是不要
我已经设置了一个名为“sel”的数据属性,下面的jQuery要求使用值为“true”的数据sel,但它将其添加到每个类中,即使是没有“data sel”的类 jQuery:Javascript jQuery正在向每个类添加样式,而我说的是不要,javascript,jquery,html,Javascript,Jquery,Html,我已经设置了一个名为“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
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[data-sel='true']").css({'display': 'inline-block'});
实际上,您正在使用slide
类选择所有元素,然后设置它们的datasel
属性
这是文件
您正在使用将“数据选择”属性设置为true
$(".slide").data("sel", 'true');
这样做的目的是使用类“slide”获取所有div,并为其上的键“sel”设置值“true”。因此,selTrue
是一个包含所有div的jQuery数组,类为。slide
。然后为数组中的所有元素(页面上的4个div)设置display:inline block
您要做的是:
$('.slide[data sel=“true”]').css('display','inline block')
方括号表示基于属性的查询。哦,哇,非常简单的修复,真不敢相信我被困在这个问题上了。无论如何,谢谢!我一定会投最好的票(如果它有效的话)。只需添加它就可以了。幻灯片[data sel='true']否?@EduardoQuintana and Barmar,是的。@user3314062我应该给你自己编辑的机会…跳跃的编辑手指。没有必要循环和遍历条件。很容易根据数据属性进行选择。下面是我的答案,我从来不喜欢使用属性选择器。还有一些错误与开放的门票。但是它可能更快。由于方法链接,
selTrue==$(“.slide”)
@Barmar,啊,我不认为数据函数上有链接。所有不需要返回其他内容的jquery函数都是可链接的<带有一个参数的code>.data()返回数据值,因此无法链接。但是带有两个参数的.data()
是可链接的。
$(".slide").each(function () {
if ($(this).data("sel") === true) {
$(this).css({'display': 'inline-block'});
}
});
$(".slide").data("sel", 'true');
var selTrue = $(".slide").data("sel", 'true');