如何强制javascript函数将参数视为字符串?

时间:2017-08-18 14:02:41

标签: javascript

<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)。我怎么能阻止这个?我希望它始终被视为一个字符串。

2 个答案:

答案 0 :(得分:3)

把它放在引号中:

document.write("<a onclick=\"myFunc('"+id+"');\" href=#>Click me</a><br>");
// ---------------------------------^------^

FWIW,我强烈建议使用onxyz - 属性样式的事件处理程序。首先,你从它们调用的函数必须是全局变量,这通常不是一件好事。相反,在旧IE上使用现代事件处理(addEventListenerattachEvent; 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>");

请注意单引号。