jQuery.each不遍历每个

jQuery.each不遍历每个,jquery,each,Jquery,Each,有人能告诉我我做错了什么吗?我有以下jQuery。它应该遍历每个.box,获取属性“fade”,并对每个.box应用单独的淡入淡出时间。然而,它忽略了var淡入,只是一次将它们全部淡出。这不一定是褪色,因为我想对“每个”框做几件事。知道我做错了什么吗?你能解释一下原因吗?我真的很感谢你的帮助 <div class="box" fade="1000"></div> <div class="box" fade="3000"></div> <div

有人能告诉我我做错了什么吗?我有以下jQuery。它应该遍历每个.box,获取属性“fade”,并对每个.box应用单独的淡入淡出时间。然而,它忽略了var淡入,只是一次将它们全部淡出。这不一定是褪色,因为我想对“每个”框做几件事。知道我做错了什么吗?你能解释一下原因吗?我真的很感谢你的帮助

<div class="box" fade="1000"></div>
<div class="box" fade="3000"></div>
<div class="box" fade="6000"></div>

您的迭代很好。但duration必须是一个数字,因此将其类型转换为int:

$('.box').each(function() {

   var fade = $(this).attr('fade');
   $(this).fadeOut(+fade); //here 

});

褪色并不是一个有效的属性,考虑使用数据淡入,因为属性名称也用jQuery的数据API访问它,自动将其转换为数字。与使用attr访问它不同,在这种情况下不需要显式强制转换

加成 淡入淡出不是有效的属性。将它们切换到数据淡入淡出效果很好


@jcsanyi是的,使用数据api。啊-谢谢你,PSL。我不知道“数据-”属性。这解决了一个问题——当然,现在我还有另一个问题。但另一个问题可能更好。谢谢你的帮助@XTIAN用于自定义属性,如您正在执行的操作,以使html保持有效。只是出于好奇,前导加号是否将字符串转换为整数?@XTIAN是的,它是一元运算符。您还可以使用parseIntfade,实际上将其切换为数据淡入淡出,并使用数据api自动访问它。谢谢您提供的信息,Tim。谢谢。
$('.box').each(function() {

   var fade = $(this).attr('fade');
   $(this).fadeOut(+fade); //here 

});
<div class="box" data-fade="1000">222</div>
<div class="box" data-fade="3000">333</div>
<div class="box" data-fade="6000">444</div>
$(function(){
 $('.box').each(function() {
   var $this = $(this);
   var fade = $this.data('fade');
   $this.fadeOut(fade);

 });
});
$('.box').each(function() {

   var fade = $(this).data('fade');

   $(this).fadeOut(fade);

});

<div class="box" data-fade="1000"></div>
<div class="box" data-fade="3000"></div>
<div class="box" data-fade="6000"></div>