将参数传递给javascript中的函数 - 作为对象而不是变量?

时间:2013-11-12 18:49:41

标签: javascript

喜欢PHP,但对JavaScript来说却是新手。我正在关注一个教程,有一件事让我陷入困境。 我用markRead函数调用:

<a href="#" onclick="return false;" onmousedown="markRead(9,notifreq_9)">
   
function markRead(noteid,elem){
var action = "delete";
var ajax = ajaxObj("POST", "php_parsers/notification_parser.php");
ajax.onreadystatechange = function() {
    if(ajaxReturn(ajax) == true) {
        if(ajax.responseText == "deleted"){
        _(elem).innerHTML = "";
        }
    }
}
ajax.send("action="+action+"&noteid="+noteid);
}

出于某种原因,它正在将noteid作为变量阅读(我可以alert(noteid)并且会报告9),但如果我尝试alert(elem),它会回来[{1}} {1}}]。

我通过指定object作弊,但我很想知道这里发生了什么......有人能指出我正确的方向来了解正在发生的事情吗?

3 个答案:

答案 0 :(得分:2)

你需要使用引号

如果您不使用引号,则javascript会将其作为对象,即具有nameid

的变量

所以改变这个

onmousedown="markRead(9,notifreq_9)"

到这个

onmousedown="markRead(9,'notifreq_9')"

答案 1 :(得分:1)

如果你试图传递实际的单词,那么任何没有引号的内容都将被视为变量,请使用"markRead(9,'notifreq_9')"

答案 2 :(得分:1)

因为它没有引号,所以它被引用为一个对象,并且回到某些浏览器会查找具有该名称的变量,如果它找不到它,它会查找具有该id的元素。

onmousedown="markRead(9,notifreq_9)">

需要

onmousedown="markRead(9,'notifreq_9')">