Jquery array.push()不起作用

Saa*_*hir 10 javascript arrays jquery

我一直在尝试使用Jquery array.push()函数将下拉列表中的变量添加到数组中,但由于某些奇怪的原因它无法正常工作.以下是jsFiddle链接:http: //jsfiddle.net/dKWnb/3/

JavaScript:

$("#test").live("click",function() {
       var myarray = new Array();
        myarray.push($("#drop").val());
        alert(myarray);
});
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Man*_*eUK 17

您的HTML应包含属性引用:http://jsfiddle.net/dKWnb/4/

使用HTML5文档类型时不需要 - 谢谢@bazmegakapa

您每次都创建数组并为其添加一个值...它按预期工作?

将数组移到live()函数之外的工作正常:

var myarray = []; // more efficient than new Array()
$("#test").live("click",function() {
        myarray.push($("#drop").val());
        alert(myarray);
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/dKWnb/5/

另请注意,在jQuery v1.7的更高版本中 - >不推荐使用live()方法,并将其替换为on()方法.

  • 他使用HTML5文档类型.在属性值周围使用引号不是强制性的. (3认同)
  • @bazmegakapa好了 - 我在那里学到了什么 - 答案更新了 (2认同)

Int*_*ang 5

您的代码会为我提醒下拉列表的当前值,表明该下拉列表已正确推送到数组中。

您是否要保留旧值并追加?您每次都在重新创建数组,这意味着旧值会被破坏。

这是一些更新的代码:

var myarray = [];
$("#test").click(function() {
    myarray.push($("#drop").val());
    alert(myarray);
});
Run Code Online (Sandbox Code Playgroud)

jsFiddle