Javascript 为什么这个js数组函数不起作用?

Javascript 为什么这个js数组函数不起作用?,javascript,arrays,Javascript,Arrays,我正在使用jQuery库,并尝试将项推送到数组: AOC 我在chrome上看到这个: 对象myarray没有方法“push”哦,我想我找到了问题所在。在onclick中,使用两个字符串调用函数。第一个参数应该是数组而不是“myarray” 如果您只是去掉引号,并且myArray在全局范围内,那么它应该可以工作。也就是说,让它看起来像这样: onclick="setFacet(myArray, 'val')" 更改: onclick=setFacet'myarray','val' 致: onc

我正在使用jQuery库,并尝试将项推送到数组:

AOC

我在chrome上看到这个:


对象myarray没有方法“push”

哦,我想我找到了问题所在。在onclick中,使用两个字符串调用函数。第一个参数应该是数组而不是“myarray”

如果您只是去掉引号,并且myArray在全局范围内,那么它应该可以工作。也就是说,让它看起来像这样:

onclick="setFacet(myArray, 'val')"
更改:

onclick=setFacet'myarray','val'

致:

onclick=setFacetmyarray

然后将函数setFacet更改为以下内容:

function setFacet(arr, bb) {
   for (var i=0; i< arr.length; i++)
       if (arr[i] == bb) return true;

   arr.push(this.innerHTML); /* "this" in the context of the "click" */
                             /* is the element clicked */

   return false;
}

具有onclick侦听器的元素应为

<...onclick ="setFacet(myarray,'val');">

myarray不应被引用,否则将被视为字符串。

您可以将javascript与标记完全分离,只需将值存储为单击元素或任何其他元素的属性

<input type="button" value="someValue">

<script>
  $(function(){
    var myArray = [];

    $('#myEle').click(function(){
      myArray.push($(this).val())
    })
  })
</script>

你的缩进使代码很难阅读。你不应该把它放进myarray而不是arr吗?还有,到底是什么不起作用?你有没有收到错误消息或其他什么?jQuery到底是从哪里来的?@JosephSilber:这是一个非常重要的问题;你必须提到jQuery是时尚的;如何在onclick中引用数组?假设myArray是一个全局变量,您应该能够只执行onclick=setFacetmyArray,'val'。
<input type="button" value="someValue">

<script>
  $(function(){
    var myArray = [];

    $('#myEle').click(function(){
      myArray.push($(this).val())
    })
  })
</script>