jquery .append html标签语法错误

时间:2013-08-11 14:50:26

标签: javascript jquery html

 $(".filelist").append("<tr><td>Admin</td><td><a href="+fileadd+">"+file.name+"</a></td><td><a href='javascript:deleteFile("+thedata.fileid+","+thedata.fileid+","+thedata.filename+")' id="+thedata.fileid+">Delete</a></td></tr>")

我犯了一个愚蠢的错误..请纠正我,当我点击删除链接时,我收到以下错误。

Uncaught SyntaxError: Unexpected token ILLEGAL 

4 个答案:

答案 0 :(得分:1)

$(".filelist").append("<tr><td>Admin</td><td><a href="+fileadd+">"+file.name+"</a></td><td><a href='javascript:deleteFile("+thedata.fileid+","+thedata.fileid+","+thedata.filename+")' id="+thedata.fileid+">Delete</a></td></tr>");

使用转义引号\"标记或您的变量必须已包含在其中,并在最后使用;

关闭语句

答案 1 :(得分:1)

var href1="javascript:deleteFile('"+thedata.fileid+"','"+thedata.fileid+"','"+thedata.filename+"')";

var $row="<tr><td>Admin</td>";
$row=$row+"<td><a href=\""+fileadd+"\">"+file.name+"</a></td>";
$row=$row+"<td><a href=\""+href1+"\" id=\""+thedata.fileid+"\">Delete</a></td></tr>";


$(".filelist").append($row);

尝试分而治之方法,上述方式可能会或可能不会解决问题,但它更易于阅读和阅读理解,而不是一个长长的单行,打破许多。

答案 2 :(得分:1)

我会做那样的事情:

delete_link = $('<a>').text('Delete')
  .data('filedelete',{id: thedata.fileid, name: thedata.filename})
  .click(function(){
     data = $(this).data('filedelete');
     deleteFile(data.fileid,data.fileid,data.filename);
  })

$('<tr>').append(
  $('<td>')
    .attr('href',fileadd)
    .text(file.name)
    .append(delete_link))
.appendTo('.filelist')

这样我就可以避免在同一个文件中混合使用HTML和JS / JQuery代码......好吧,它有点长,但是它不是比.append('<foo bar="'+ gibsy +'">')样式更聪明吗?当我使用这种语法时,我总是忘记了一个字符。

答案 3 :(得分:1)

每当你传递任何字符串作为参数时你都必须在引号下传递它并且你可以实现使用\“.n如果传递的字符串不是字符串则不要使用引号,否则你可能会错误结果

要获得更多说明,请查看此答案live example