2

这是一个非常简单的问题,但我无法弄清楚。我正在尝试将参数传递给单击超链接时调用的 Javascript 函数。

当参数是数字时它工作得很好,但当其中一个参数是字符串类型时它不起作用。我什至试图逃避他们,但不幸的是无济于事。

下面是一个非常简单的代码。

function temp(a, b)
{
    alert(a+ "   "+b);
}

<a href="javascript:void(0);" onclick="temp(x, 2);">Click</a>

x is undefined x在这里抱怨是行不通的onclick="temp(x, 2);"。当我修改类似这样的函数时temp(1,2);,它会按照指定的方式工作并发出警报。

可能是什么原因?解决办法是什么?

4

2 回答 2

4

您应该避免传递未定义的变量...x只是一个变量,因为字符串以双引号或单引号开头和结尾

function temp(a, b) {
    alert(a+ "   "+b);
}

<a href="javascript:void(0);" onclick="temp('x', 2);">Click</a>

我还创建了一个小提琴来展示它的工作原理

编辑:小提琴的这个版本表明你也可以切换标记中使用的引号......如果你习惯于为 JS 字符串加双引号小提琴版本 1

于 2012-05-06T12:59:57.407 回答
3
<a href="javascript:void(0);" onclick="temp('x', 2);">Click</a>

演示

使用您的代码,您将x它视为一个变量,虽然它没有贴花,但用引号括起来。


如果要使用该x变量,请将其声明为<a>

<script>
    var x ="foo";

    function temp(a, b) {
        alert(a + "   " + b);
    }​
</script>

<a href="javascript:void(0);" onclick="temp(x, 2);">Click</a>
于 2012-05-06T13:00:01.280 回答