javascript - 如何使用循环根据另一个输入为输入分配值?
问题描述
如果“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="">
解决方案
要获得您想要的结果,您需要比目前更多的逻辑。至少你的问题的措辞是这样的。第一个问题是你的初始 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="">
推荐阅读
- javascript - 如果函数参数可能是两种不同的类型,如何解决 TypeScript 错误?
- linux - 如何验证 USB 串行选项驱动程序是否适用于 arm-linux 板?
- java - Spark 中的 ClassCastException 读取 Teradata 和写入 Parquet
- python - 块大小是什么意思
- c++ - C++ CppUnitTest 更改 DLL 布局
- django - Django-tables2 :使用 linkify 指向记录本身
- visual-studio-code - Julia 的 vsCode 中的退出代码 3221225477。我该如何解决?
- matlab - 无法使用 DAGNetwork 类型的值作为 Matlab 中的索引
- string - System.FormatException:字符串未被识别为 IOS xamarin 表单中的有效日期时间
- ffmpeg - ffmpeg filtergraph描述中的文件索引3无效