下面是我js中拼接的代码:
+ "<td><button type='button' class='btn btn-danger' οnclick='deleteBook("+bookState +")'>删除</button>" +
当调用deleteBook方法时会报错:xxxx is not defined
bug分析
报错的是deleteBook(bookState)方法,当然当你的参数是数字的时候,实际传递是的''deleteBook(100)'',该方法是不会报错的,但当方法参数是字符串类型的参数时,实际的是这样''deleteBook(书名)'',此时就会报错 书名(变量) is not defined,显然这样就会报错,必须要给这个参数拼接上单引号,这样传过去的参数才是字符串,所以怎么解决呢,方法中已经使用了单引号做为连接符,此时要是用转义符来进行处理
解决办法:
将要拼接的参数用引号括起来,若引号冲突则添加添加引号的字符实体,如下:
+ "<td><button type='button' class='btn btn-danger' οnclick='deleteBook(""+bookState +"")'>删除</button>" +