簡體   English   中英

為什么這個js數組函數不起作用?

[英]Why doesn't this js array function work?

我正在使用jQuery庫,並嘗試將項目推入數組:

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

var myarray = [];

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

    arr.push(bb);
    return false;
}

我得到這個鍍鉻:

對象myarray沒有方法“推”

哦,我想我找到了問題。 onclick ,您將使用兩個字符串來調用該函數。 第一個參數應該是一個數組,而不是'myarray'

如果您只刪除引號(並且myArray在全局范圍內),則應該可以使用。 也就是說,它看起來像這樣:

onclick="setFacet(myArray, 'val')"

更改:

onclick="setFacet('myarray','val')"

至:

onclick="setFacet(myarray)"

然后將函數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與標記完全分開,然后將值存儲為clicked元素(或任何其他元素)的屬性

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM