我的这个html元素具有相同的类,具有不同的值。
<div>
<p>1</p>
<input type="hidden" name="qs-ordered[]" class="qs_cntss" value="0">
</div>
<div>
<p>2</p>
<input type="hidden" name="qs-ordered[]" class="qs_cntss" value="0">
</div>
<div>
<p>3</p>
<input type="hidden" name="qs-ordered[]" class="qs_cntss" value="0">
</div>
<div>
<p>4</p>
<input type="hidden" name="qs-ordered[]" class="qs_cntss" value="0">
</div>
...
<div>
<p>7</p>
<input type="hidden" name="qs-ordered[]" class="qs_cntss" value="0">
</div>
现在我想通过在调用函数时计算其值来重新赋值。这是我目前的代码:
jQuery("div").click(function(){
var cnt = 1;
jQuery('.qs_cntss').each(function(){
jQuery('.qs_cntss').val(cnt);
cnt++;
});
});
jQuery(function() {
jQuery( "div" ).sortable({
revert: true
});
jQuery( "div" ).disableSelection();
});
但所有.qs_cntss
值的问题都是7
..但我希望它是第一个订单:1,2,3,4..7 ... like
<div>
<p>1</p>
<input type="hidden" name="qs-ordered[]" class="qs_cntss" value="1">
</div>
<div>
<p>2</p>
<input type="hidden" name="qs-ordered[]" class="qs_cntss" value="2">
</div>
<div>
<p>3</p>
<input type="hidden" name="qs-ordered[]" class="qs_cntss" value="3">
</div>
<div>
<p>4</p>
<input type="hidden" name="qs-ordered[]" class="qs_cntss" value="4">
</div>
...
<div>
<p>7</p>
<input type="hidden" name="qs-ordered[]" class="qs_cntss" value="7">
</div>
我有这个想法,因为我希望它适用于此Moving node Div Up and Down using Javascript/Jquery和https://jqueryui.com/draggable/#sortable ..因此每当我拖动div时,它会根据其顺序更改所有qs_cntss
值..有可能吗?
答案 0 :(得分:1)
所有人都是7的原因是你设置jQuery('.qs_cntss').val(cnt);
。
尝试使用this
: -
jQuery("div").click(function(){
var cnt = 1;
jQuery('.qs_cntss').each(function(){
jQuery(this).val(cnt);
cnt++;
});
});
答案 1 :(得分:0)
你的问题是这行代码:
jQuery('.qs_cntss').val(cnt);
您可以在循环的每次迭代中执行此操作。请记住,选择器.qs_cntss
的目标是具有此类的所有元素,因此在循环完成后将所有元素设置为7是有意义的。要解决此问题,只需将其替换为this
。
jQuery(this).val(cnt);