javascript - 在 JavaScript 函数中使用循环
问题描述
晚上好。所以,你们能给我一些例子,说明我如何使用循环来使这个函数更小,我不熟悉 JS 中的循环。谢谢 :)
function setValue(){
let in1 = document.querySelector("#number1")
let in2 = document.querySelector("#number2")
let in3 = document.querySelector("#number3")
let in4 = document.querySelector("#number4")
let in5 = document.querySelector("#number5")
let in6 = document.querySelector("#number6")
let in7 = document.querySelector("#number7")
let in8 = document.querySelector("#number8")
let in9 = document.querySelector("#number9")
let in10 = document.querySelector("#number10")
setAttribute('marginLeft', in1.value)
setAttribute('marginRight', in2.value)
setAttribute('marginBottom', in3.value)
setAttribute('marginTop', in4.value)
setAttribute('margin', in5.value)
setAttribute('paddingLeft', in6.value)
setAttribute('paddingRight', in7.value)
setAttribute('paddingBottom', in8.value)
setAttribute('paddingTop', in9.value)
setAttribute('padding', in10.value)
}
解决方案
使用类而不是 ID,并具有需要设置的属性数组:
function setValue() {
const attributeNames = ['marginLeft', 'marginRight', 'marginBottom', ...];
document.querySelectorAll('.numbers').forEach((elm, i) => {
setAttribute(attributeNames[i], elm.value);
});
}
如果你不能依赖NodeList.forEach
现有的(它不是那么旧,所以旧浏览器不支持),首先填充它:
if (!NodeList.prototype.forEach) {
NodeList.prototype.forEach = Array.prototype.forEach;
}
(或将其更改为for
循环,或.call
Array.prototype.forEach
)
推荐阅读
- r - R 中的机器学习:在 MLR3 中使用 MLR 包生存过滤器
- r - 三次样条外推(R 函数 pchip())
- amazon-web-services - 在不同的 AWS 区域中创建 RDS 只读副本时是否会复制/复制安全组?
- python - 能够导入模块但不能从中导入东西
- javascript - 在模块中使用 import 导入变量或使用 const 定义变量有我不理解的行为
- javascript - 打字稿:比较两个具有公共键的不同对象数组并从源数组中获取公共对象
- sql - Postgres:开发过程是怎样的?
- javascript - JavaScript - 将 eventListener 添加到具有类型范围的所有输入
- python - 如何替换 Python 中键的值?
- java - Javafx 图标图像未加载