<script>
var id = "432.000+444";
myFunc(id);
document.write("<a onclick=\"myFunc("+id+");\" href=#>Click me</a><br>");
function myFunc(id) {
alert(id);
}
</script>
myFunc(id)正常打印字符串,但点击元素会打印876(将其视为数字并添加432和444)。我怎么能阻止这个?我希望它始终被视为一个字符串。
答案 0 :(得分:3)
把它放在引号中:
document.write("<a onclick=\"myFunc('"+id+"');\" href=#>Click me</a><br>");
// ---------------------------------^------^
FWIW,我强烈建议不使用onxyz
- 属性样式的事件处理程序。首先,你从它们调用的函数必须是全局变量,这通常不是一件好事。相反,在旧IE上使用现代事件处理(addEventListener
或attachEvent
; here's a function that handles that issue)或至少 onclick
属性< / em>的
var id = "432.000+444";
var link = document.createElement("a");
link.onclick = myFunc.bind(link, id);
link.href = "#";
link.appendTextNode("Click me");
appropriateParentElement.appendChild(link);
appropriateParentElement.appendChild(document.createElement("br"));
function myFunc(id) {
alert(id);
}
答案 1 :(得分:2)
你需要用引号括起来。
↓ ↓
document.write("<a onclick=\"myFunc('"+id+"');\" href=#>Click me</a><br>");
请注意单引号。