簡體   English   中英

在JS中,當我“ alert()”傳遞給函數的參數值時,它會打印出[object Object],為什么?

[英]In JS when I 'alert()' the value of an argument passed to the function, it prints out [object Object], why?

我想做的很簡單,我想將字符串值傳遞給JS函數,以便它可以在通常的警報彈出窗口中顯示它們。 這是HTML:

<div class="clickit" onclick="myfun('dog','cat')"> Hello </div>

這是JS:

('.clickit').click(function myfun(){
    var i=0;
    for(i=0;i<arguments.length;i++){
        alert(arguments[i]);
    }
});

不幸的是,它無法正常工作,它打印出:[object Object]。

另外,即使有2個參數,它也只循環一次。 我遵循這里描述的內容: w3schools ,但它沒有用。

任何幫助將不勝感激。

沒有具有公用名myfun 事件處理程序中的函數是一個命名的函數表達式,因此該名稱僅在該函數內部可用。 click屬性中的代碼將崩潰,您可以在錯誤日志中找到有關該錯誤的消息。

當將該函數作為事件處理程序調用時,只有一個參數。 事件對象。

要使用事件中的參數調用該函數,您需要一個命名函數:

function myfun(){
  var i=0;
  for(i=0;i<arguments.length;i++){
    alert(arguments[i]);
  }
}

然后,您可以從click屬性中調用它:

<div class="clickit" onclick="myfun('dog','cat')"> Hello </div>

或者您可以從調用該函數的代碼中綁定事件處理程序:

$('.clickit').click(function(){
  myfun('dog','cat');
});

演示:

 function myfun(){ var i=0; for(i=0;i<arguments.length;i++){ alert(arguments[i]); } } $('.clickit').click(function(){ myfun('dog','cat'); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div onclick="myfun('dog','cat')"> Hello </div> <div class="clickit"> Hello </div> 

暫無
暫無

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

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