javascript - jQuery按顺序迭代整数
问题描述
我所做的是,根据自己的属性在元素上按顺序迭代整数。但它不是按顺序排列的,它已经将 css 设置order
为以下元素:2、3、5,但我想忽略那些在迭代时没有属性的元素。
var i = 0;
jQuery('.each-order').each(function() {
i++;
if (jQuery(this).attr('data-payment') === '1') {
console.log(i);
jQuery(this).css('order', i);
}
});
#orders {
display: flex
}
.each-order {
border: 1px solid red;
padding: 10px;
margin: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="orders">
<div class=each-order data-payment="0">Test 1</div>
<div class=each-order data-payment="1">Test 2</div>
<div class=each-order data-payment="1">Test 3</div>
<div class=each-order data-payment="0">Test 4</div>
<div class=each-order data-payment="1">Test 5</div>
</div>
已经输出:
<div id="orders">
<div class="each-order" data-payment="0">Test 1</div>
<div class="each-order" data-payment="1" style="order: 2;">Test 2</div>
<div class="each-order" data-payment="1" style="order: 3;">Test 3</div>
<div class="each-order" data-payment="0">Test 4</div>
<div class="each-order" data-payment="1" style="order: 5;">Test 5</div>
</div>
期望输出:
<div id="orders">
<div class="each-order" data-payment="0">Test 1</div>
<div class="each-order" data-payment="1" style="order: 1;">Test 2</div>
<div class="each-order" data-payment="1" style="order: 2;">Test 3</div>
<div class="each-order" data-payment="0">Test 4</div>
<div class="each-order" data-payment="1" style="order: 3;">Test 5</div>
</div>
解决方案
i
如果您不使用它,请不要增加:
var i = 0;
jQuery('.each-order').each(function() {
if (jQuery(this).attr('data-payment') === '1') {
jQuery(this).css('order', ++i); // Prefix increment, only if you use it
}
});
更新片段:
var i = 0;
jQuery('.each-order').each(function() {
if (jQuery(this).attr('data-payment') === '1') {
jQuery(this).css('order', ++i); // Prefix increment, only if you use it
}
});
#orders {
display: flex
}
.each-order {
border: 1px solid red;
padding: 10px;
margin: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="orders">
<div class=each-order data-payment="0">Test 1</div>
<div class=each-order data-payment="1">Test 2</div>
<div class=each-order data-payment="1">Test 3</div>
<div class=each-order data-payment="0">Test 4</div>
<div class=each-order data-payment="1">Test 5</div>
</div>
推荐阅读
- algorithm - 具有多个源和汇的寻路?
- xamarin.android - 在应用链接冷启动时显示启动画面
- python - 为给定尺寸创建包含裁剪图像的新图像
- azure-functions - Azure Function Service Bus 触发器的触发次数多于队列中的消息
- ios - Swift Class 有另一个来自 Pod 的带有 UiViewController 的类,因此在插座上获得 Nil
- java - @Valid 不适用于嵌套对象(Java / Spring Boot)
- java - Java 服务器上下文和 JNDI 缺少条目
- database - pgAdmin 4 - 查询工具自动完成的性能非常差,这正常吗?
- c++ - 无法打破c ++中的无限循环
- php - .htaccess 链接重写返回 404 错误