功能参数未定义

时间:2012-12-04 13:15:39

标签: javascript

我对代码中的一些函数感到非常沮丧。当用户点击链接时,我会触发一些功能 该参数已正确发送到这两个函数,但当用户单击detailplace的链接时,我收到引用错误,SomeName未定义。功能细节似乎没有问题。为什么detail有效但detailplace没有?

HTML

<a href="javascript:detail(123456);">Details</a>
<a href="javascript:detailplace(SomeName);">Details</a>

的Javascript

function detail(property) {
    var summaryhtml = '<iframe src="' + URL + property + '" width="340px" height="400px" frameborder="0" class="sum_frame"></iframe>';
    document.getElementById('itab1').innerHTML = summaryhtml;
}

function detailplace(place) {
    var summaryhtml = '<iframe src="' + URL + place + '" width="340px" height="400px" frameborder="0" class="sum_frame"></iframe>';
    document.getElementById('itab1').innerHTML = summaryhtml;
}

我接受了您的建议并编辑了代码以包含引号。问题是我在javascript中构建了链接。 SomeName在别处被定义为字符串。

link = '<a href="javascript:detailplace(&quot;';
link += SomeName;
link += '&quot;)";>Site Details</a>';

在引号内使用引号转义引号的正确方法是什么,以便将字符串作为参数发送?

3 个答案:

答案 0 :(得分:2)

你必须用SomeName包裹quotes

<a href="javascript:detailplace('SomeName');">Details</a>

如果您在没有引号的情况下传递javascript,则认为它是undefined的变量。

答案 1 :(得分:1)

上面的

SomeName用作变量而不是字符串。你缺少报价。

<a href="javascript:detailplace('SomeName');">Details</a>

没有引号,它正在寻找一个名为SomeName的变量,它将保存您要填充的地方的名称。知道我的意思吗?

答案 2 :(得分:1)

如果SomeName不是先前定义的变量,但它是您要传递给方法的实际文字文本,则需要将其放在引号中。

javascript:detailplace('SomeName');