意外的数字错误

use*_*666 1 html javascript

我一直在编写一个函数,允许用户使用JavaScript将图像从本地文件系统上传到网站.我已成功将图像上传到浏览器.

我还编写了一个允许用户删除这些图像的功能.

var count = 0;
function getPhoto(){

    var file = document.getElementById('ad_photo');
    var list = document.getElementById('ad_photo_upload');
    var fReader = new FileReader();
    var photo_list = [];
    var counter;

    fReader.readAsDataURL(file.files[0]);
    fReader.onloadend = function(event){

        counter = count.toString();

        list.innerHTML += "<li id = 'pic " + counter + "'><img src='" + event.target.result + "'></img><a class = 'close' onclick = 'rem_pic(pic " + counter + ")'>X</a></li>"; 
        photo_list[count] = event.target.result;
        count++;

    }



}

function rem_pic(theID){

    var element = document.getElementById(theID);
    element.outerHTML = "";
    delete element;

}
Run Code Online (Sandbox Code Playgroud)

我的问题是每当我调用"rem_pic(theID)"函数时,我会收到一条Chrome浏览器错误消息"Uncaught SyntaxError:Unexpected number".有没有人知道为什么会这样?我怎么可能改进我写的功能,使它们正常工作?

谢谢

ant*_*rat 5

这是因为您将一个数字传递给您的函数:

'rem_pic(pic " + counter + ")'
Run Code Online (Sandbox Code Playgroud)

将呈现给

'rem_pic(pic 1)'
             ^ or any other number according to your counter value
Run Code Online (Sandbox Code Playgroud)

这是错误的,因为javascript params不能包含空格.

所以你可能需要传递一个字符串:

rem_pic(\"pic " + counter + "\")
Run Code Online (Sandbox Code Playgroud)

查看代码似乎就像使用它作为HTML id属性一样.id属性也不能包含空格字符,所以你的代码应该是这样的

rem_pic(\"pic" + counter + "\")
Run Code Online (Sandbox Code Playgroud)

如果您id在布局具有格式id="pic1",id="pic2"等等.