2

喜欢 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)它会反击 [ object]。

我通过分配作弊elem = notifreq_+noteid,但我很想了解这里发生了什么......有人可以指出我正确的方向以了解正在发生的事情吗?

4

3 回答 3

2

你需要使用引号

如果你不使用引号,javascript会将它作为一个对象,即一个带有它的变量nameid

所以改变这个

onmousedown="markRead(9,notifreq_9)"

对此

onmousedown="markRead(9,'notifreq_9')"
于 2013-11-12T18:56:43.220 回答
1

不带引号传递的任何内容都将被假定为变量,如果您尝试传递实际单词,请使用"markRead(9,'notifreq_9')"

于 2013-11-12T18:52:17.863 回答
1

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

onmousedown="markRead(9,notifreq_9)">

需要是

onmousedown="markRead(9,'notifreq_9')">
于 2013-11-12T18:52:31.467 回答