如何创建一个可以接受不同id的函数
我正在尝试创建一个函数代码以减少代码冗余
法典:
function getTableData(_tableName)
{
var array = [];
var headers = [];
var tableName = _tableName;
var jsonData = '';
$('#'+tableName+ 'th:not(:last-child)').each(function()
{
headers.push($(this).attr('data-name'));
})
$('#'+tableName+ 'tbody tr').each(function()
{
var arrayItem = {};
$(this).find('td:not(:last-child)').each(function(i)
{
arrayItem[headers[i]] = $(this).text();
})
array.push(arrayItem);
});
var jsonData = JSON.stringify(array)
return jsonData;
}
$('#btn-save-firstTable').on('click', function()
{
var valueFd = getTableData('firstTable') //already tried $('#firstTable')
$.ajax(
{
url: 'ajax/submit-application.php',
method:"POST",
dataType: "text",
data: { firstTable: valueFd },
success:function(data)
{
alert(data);
}
});
});
$('#btn-save-secondTable').on('click', function()
{
var valueSd = getTableData('secondTable') //already tried $('#secondTable')
$.ajax(
{
url: 'ajax/submit-application.php',
method:"POST",
dataType: "text",
data: { secondTable: valueSd },
success:function(data)
{
alert(data);
}
});
});
如何泛化函数?或者为任何表 ID 动态化它。 或者对我所指的内容有任何建议?
你可以试试这个- 为了减少代码冗余,您可以创建一个函数,该函数将采用两个参数 - tableSaveBtn 和 tableID
该函数的代码将如下所示-
function getdata(tableSaveBtn,tableID)
{
$(tableSaveBtn).on('click', function()
{
var valueFd = getTableData(tableID)
$.ajax(
{
url: 'ajax/submit-application.php',
method:"POST",
dataType: "text",
data: { tableID: valueFd },
success:function(data)
{
alert(data);
}
});
});
}
你可以从getTableData((函数调用这个getData((函数,以获得你想要的尽可能多的表ID,就像这样-
getData('#btn-save-firstTable','firstTable');
getData('#btn-save-secondTable','secondTable');
希望这个答案对你有帮助。