喜欢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+"¬eid="+noteid);
}
出于某种原因,它正在将noteid
作为变量阅读(我可以alert(noteid)
并且会报告9
),但如果我尝试alert(elem)
,它会回来[{1}} {1}}]。
我通过指定object
作弊,但我很想知道这里发生了什么......有人能指出我正确的方向来了解正在发生的事情吗?
答案 0 :(得分:2)
你需要使用引号
如果您不使用引号,则javascript会将其作为对象,即具有name
或id
所以改变这个
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')">