我正在尝试使用javascript添加和删除文件上传。 我可以添加元素,但是当我尝试删除相同的元素时,它会显示错误:
SyntaxError: expected expression, got '}
下面是我的HTML代码:
<form enctype="multipart/form-data" action="" method="post">
<p>Upload file(s)</p>
<div id="files">
<p><input type="file" name="uploaded_file[]" /></p>
</div>
<p><input type="button" value="Add File" onclick="addFile();" /></p>
</form>
JS:
function addElement(parentId, elementTag, elementId, html) {
// Adds an element to the document
var p = document.getElementById(parentId);
var newElement = document.createElement(elementTag);
newElement.setAttribute('id', elementId);
newElement.innerHTML = html;
p.appendChild(newElement);
}
function removeElement(elementId) {
// Removes an element from the document
var element = document.getElementById(elementId);
element.parentNode.removeChild(element);
}
var fileId = 0; // used by the addFile() function to keep track of IDs
window.addFile = function() {
fileId++; // increment fileId to get a unique ID for the new element
var html = '<input type="file" name="uploaded_files[]" /> ' +
'<a href="" onclick="javascript:removeElement("file-' + fileId + '"); return false;">Remove</a>';
addElement('files', 'p', 'file-' + fileId, html);
}
错误似乎在这行中,但是我不确定
var html = '<input type="file" name="uploaded_files[]" /> ' +
'<a href="" onclick="javascript:removeElement("file-' + fileId + '"); return false;">Remove</a>';
jsFiddle here
答案 0 :(得分:0)
将"file-' + fileId + '"
更改为\'file-' + fileId + '\'
。
您正在使用''字符在html var中设置字符串,因此可以在其中自由使用“”:var html = '<a href="myhref">'
但是当您还需要在一个已经打开的双引号中声明一个字符串时,您需要使用单引号并将其转义,因此JS知道您实际上并没有在开始时关闭初始单引号。
var html = '<a href="myhref" onclick="functionToCall(\'myStringInsideAnotherString\')">'
您仍然可以使用常规(不转义)单引号添加动态内容:
var html = '<a href="myhref" onclick="functionToCall(\'myStringInside' +
myOtherStringDeclaredSomewhereElse + 'AnotherString\')">'
此外,为了使您的小提琴正常工作,您需要将加载类型更改为“ No wrap”而不是onLoad。