好的......这就是我所拥有的:
$('#more_rows').click(function(){
var allvars = [];
var threevar = $('#third_select option:selected').text();
allvars.push(threevar);
});
这将获取选择框的当前所选选项的文本。我认为它会将该文本推送到新创建的allvars
数组中。它在第一次点击功能发生时推送文本,我得到了这个:
["Example Text 1"]
但是,当从select中选择一个新选项并再次点击该功能时,我得到了这个:
["Example Text 2"]
我想要的是:
["Example Text 1","Example Text 2"]
并且能够根据需要为此数组添加任意数量的项目。
我在这里犯了什么错误?有更好的方法吗?
答案 0 :(得分:2)
只需将数组初始化移出函数即可。
$(function() {
var allvars = [];
$('#more_rows').click(function(){
var threevar = $('#third_select option:selected').text();
allvars.push(threevar);
});
});
答案 1 :(得分:1)
每次在点击处理程序中重新声明您的allvars
;考虑在外面确定范围,例如在DOM就绪处理程序中:
jQuery(function($) {
var allvars = [];
$('#more_rows').click(function() {
var threevar = $('#third_select option:selected').text();
allvars.push(threevar);
});
});
答案 2 :(得分:1)
您需要在函数范围之外创建数组。
基本上每次单击选择框时,都会创建新的空变量并将值推入其中。
var allvars = [];
$('#more_rows').click(function(){
var threevar = $('#third_select option:selected').text();
allvars.push(threevar);
});
答案 3 :(得分:0)
每次调度click事件时,您都在创建新数组。