我一直试图添加变量从下拉到一个数组使用Jquery array.push()函数,但由于一些奇怪的原因,它不工作。以下是jsFiddle的链接:http://jsfiddle.net/dKWnb/3/
JavaScript:$("#test").live("click",function() {
var myarray = new Array();
myarray.push($("#drop").val());
alert(myarray);
});
HTML <Select name=drop id=drop>
<option value=1>1</option>
<option value=2>2</option>
</select>
<input type=button name=test id=test value=test>
你的HTML应该包含属性的引号:http://jsfiddle.net/dKWnb/4/
当使用HTML5 doctype时不需要-感谢@bazmegakapa
每次创建一个数组并添加一个值给它…
将数组移出live()函数可以正常工作:
var myarray = []; // more efficient than new Array()
$("#test").live("click",function() {
myarray.push($("#drop").val());
alert(myarray);
});
http://jsfiddle.net/dKWnb/5/还要注意,在jQuery v1.7 ->的后续版本中,live()方法已被弃用,取而代之的是on()方法。
您的代码为我提醒下拉列表的当前值,显示它已正确地推入数组。
要保留旧值并追加吗?每次都要重新创建数组,这意味着旧的值会被删除。
下面是一些更新后的代码:
var myarray = [];
$("#test").click(function() {
myarray.push($("#drop").val());
alert(myarray);
});
jsFiddle
另一个解决方法:
var myarray = [];
$("#test").click(function() {
myarray[index]=$("#drop").val();
alert(myarray);
});
我想添加所有选中的复选框数组。例如,如果使用。each:
var vpp = [];
var incr=0;
$('.prsn').each(function(idx) {
if (this.checked) {
var p=$('.pp').eq(idx).val();
vpp[incr]=(p);
incr++;
}
});
//do what ever with vpp array;
var array = [];
var element = "anything you want in the array";
array.push(element); // array = [ "anything you want in the array" ]