Javascript错误:'缺少'参数列表后“

时间:2011-05-12 18:45:02

标签: javascript html

我正在通过javascript为我的网页制作image

photoHTMLString = '<li class = "SliderPhoto"><img src =  "' + ImageArray[x].src_small + '" size = "thumb" onclick = "ShowImagePopUP(' + ImageArray[x].src_big + ')" class = "FacebookSliderPhoto"/></li>';

每当我尝试点击照片进入ShowImagePopUP时,我都会收到此错误:

missing ) after argument list
[Break On This Error] ShowImagePopUp(http://a8.sph...389_84095143389_5917147_2636303_n.jpg)

看起来我没有丢失任何'),所以我迷失了错误。 有什么建议吗?

4 个答案:

答案 0 :(得分:27)

您需要将ShowImagePopUP的内容包含在引号中:

"ShowImagePopUp(\'' + ImageArray[x].src_big + '\')"

哪个应呈现为:

ShowImagePopUp('http://a8.sph...389_84095143389_5917147_2636303_n.jpg')
               ^ note the quote here

示例:http://jsfiddle.net/V23J6/1/

答案 1 :(得分:2)

尝试

photoHTMLString = '<li class = "SliderPhoto"><img src =  "' 
                + ImageArray[x].src_small 
                + '" size = "thumb" onclick = "ShowImagePopUP(\"' 
                + ImageArray[x].src_big + '\")" class = "FacebookSliderPhoto"/></li>';

应该做的伎俩和解决你的问题留下完整的代码丑陋

像这样的函数应该有点可读并且可以使用......

function slideElement(image){
    var li=document.createElement('li');
    var img=document.createElement('img');
    li.appendChild(img);
    li.setAttribute('class','SliderPhoto');
    img.setAttribute('class','FacebookSliderPhoto');
    img.setAttribute('size', 'thumb');
    img.setAttribute('src', image.src_small);
    img.setAttribute('onclick', function(){showImagePopUP(image.src_big);});

    return li;
}

答案 2 :(得分:0)

ImageArray[x].src_big中的值需要引用。

尽量避免通过将字符串混合在一起来构建HTML。使用DOM构建器可以提供更容易调试的代码。

你可能最好写这个,所以函数根据小URI计算大URI,而不是硬编码。

答案 3 :(得分:0)

这是一些一般性建议,将字符串构建为中间变量,然后在最后组装它。然后,您可以使用调试器找出您的'或'不平衡的位置。当您拥有它时,您可以将它合并为一行,如果您需要或将其保留为中间变量。