如果“ master”中的值是偶数,例如8,我希望输入“ bla”将每个接收2,如果数字是奇数,例如7,则“ bla”中的值将是:2、2 ,2、1、0等。我正在尝试使用此方法,但是结果不确定
$(document).ready(function(){
var x = $("#master").val();
var z = 0 ;
var i ;
for (i = 0; i <= x ; i++) {
z += x[i];
}
$("#master").change(function(){
$('.bla').val( z ) ;
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="master" value="8">
<input class="bla" value="">
<input class="bla" value="">
<input class="bla" value="">
<input class="bla" value="">
答案 0 :(得分:1)
要得到你想要的,你需要比你现在有更多的逻辑结果。至少您的问题的措辞方式。第一个问题是您的初始z值更新仅更新一次,因此当您第二次更新master时,您将无法获得期望的值。
接下来,你想,从我的理解,从根本上打破做成2号是一个1和0,所以要做到这一点,你需要更多的方式逻辑,以检查比目前你在做什么的值。在下面,如果值> 1,则需要附加一个2。否则,请使用x的值。然后,我们将x减去附加到bla的值。
$(document).ready(function(){
updateBla();
$("#master").change(function(){
updateBla();
});
function updateBla(){
let x = $('#master').val();
let blahs = document.getElementsByClassName('bla');
for(let i = 0; i < blahs.length; i++){
let val = x > 1 ? 2 : x;
blahs[i].value = val;
x = x - val;
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="master" value="8">
<input class="bla" value="">
<input class="bla" value="">
<input class="bla" value="">
<input class="bla" value="">
答案 1 :(得分:0)
这是因为您正在尝试索引一个整数,正如@Sachintha Sampath指出的那样,它实际上没有一个索引,该索引的值不是第0个索引。试试这个:
$(document).ready(function(){
$("#master").change(function(){
var x = $("#master").val();
var z = [];
for (; x > 0; x -= 2) {
z.push(x >= 2 ? 2 : 1)
}
$('.bla').each(function(index) {
$(this).val(z[index])
})
});
});
注意:此代码最多只能显示您所用格式的数字,直到8位为止,在这种情况下,没有足够的输入来继续显示其余数字。
答案 2 :(得分:-1)
var z="";
var x=9;
var c=0;
c=Math.floor(x/2);
if(x%2==0){
for (i = 0; i <c ; i++) {
z +=" 2";
}
}else {
for (i = 0; i <c ; i++) {
z +=" 2";
}
z+=" 1 0"
}
console.log(z);