首页 > 解决方案 > 如何使用循环根据另一个输入为输入分配值?

问题描述

如果“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="">

标签: javascriptjquery

解决方案


要获得您想要的结果,您需要比目前更多的逻辑。至少你的问题的措辞是这样的。第一个问题是你的初始 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="">


推荐阅读