javascript - 将多个参数传递给 jQuery 函数
问题描述
我有一个从各种输入(多个值)获取数据并填充到表中的函数。
这是jQuery片段:
var row =1
$("input[name='product_id[]']").each(function() {
$rows[row].cells[0].innerText = $(this).val();
row = row+1;
});
row=1;
$("input[name='product_name[]']").each(function() {
$rows[row].cells[1].innerText = $(this).val();
row = row+1;
});
row=1;
$("input[name='manufacturer[]']").each(function() {
$rows[row].cells[2].innerText = $(this).val();
row = row+1;
});
row=1;
$("input[name='composition[]']").each(function() {
$rows[row].cells[3].innerText = $(this).val();
row = row+1;
});
我想知道是否可以将多个迭代器组合成一个迭代器?
谢谢基兰
解决方案
您可以通过逗号加入选择器:
$("input[name='product_id[]'], input[name='product_name[]'], input[name='manufacturer[]'], input[name='composition[]']")
.each(function() {
// ...
});
为了更加干燥,请使用数组:
const selectorStr = ['product_id', 'product_name', 'manufacturer', 'composition']
.map(str => `input[name='${str}[]']`)
.join(',');
$(selectorStr).each(function() {
// ...
});
如果除了第一次迭代之外,您需要row
参与1
所有迭代,那么:
['product_id', 'product_name', 'manufacturer', 'composition']
.forEach((str, i) => {
if (i !== 0) {
row = 1;
}
$(`input[name='${str}[]']`).each(function(){
// etc
});
});
推荐阅读
- database - 承包商和公司之间单边关系的数据库设计
- java - 将 spectron 与 Java 和 selenium 一起用于 Electron 应用程序
- python - Python - tkinter 按钮冻结
- javascript - 使用 react.js 中的 map() 将 FetchedData 从 Api 显示到卡片
- python - Matplotlib:axvline 不是在 .axis 上,而是在 ylim 上
- android - 在 xamarin.android 中开发的应用程序是否可以在 windows ce 6.0 中运行?
- python - 如何在 Python 中按位置分隔 CVS 列
- php - 为什么我会看到一条消息,指出 IAF 令牌对于 EBay 无效?
- reactjs - Formik handleReset 用于具有一个值的特定 Select
- json - 解码具有单个未键控 bool swift 的 json 文件