我想每次按添加行按钮将数据添加到ajax_data中。显然,该代码在不是函数时可以工作,但是如何使它作为函数工作呢?
新鲜的JS程序员。
var ajax_data = [{
Type: "Analog Input 0",
Tag: "AI0",
Description: "Description"
}, ]
var new_row = {
Type: "Analog Input 2",
Tag: "AI2",
Description: "Description"
}
$("Add_row").click(function(ajax_data, new_row) {
ajax_data.push(new_row);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="btn btn-primary" id="Add_row" name="button">Add row</button>
答案 0 :(得分:0)
在$("#Add_row").click
函数中,您拥有ajax_data
和new_row
作为参数名称。同时,您也将变量定义为相同的外部名称。如果在函数内部引用ajax_data
和new_row
,则JavaScript将检索参数,而不是在外部定义的变量。它们是未定义的,因为调用该函数时未传递任何内容。删除它们,它应该可以工作。
另外,我推荐retiring the use of var
in Javascript and use let
/ const
.
let ajax_data = [{
Type: "Analog Input 0",
Tag: "AI0",
Description: "Description"
}, ]
let new_row = {
Type: "Analog Input 2",
Tag: "AI2",
Description: "Description"
}
$("#Add_row").click(() => {
ajax_data.push(new_row);
console.log(ajax_data);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="btn btn-primary" id="Add_row" name="button">Add row</button>