2017-04-11 55 views
0

当存储onclick事件到页面的html代码时,我有一个问题。当表填满 对tr产品名称与行应该这个样子:JavaScript onclick - 不正确的解释

<tr onclick="cart_pr('0K2FA-50030XX')">...</tr> 

只有所有(命名为“1000发”)的一篇文章中表示这样的错误:

<tr onclick="cart_pr('1000" fa')>...</tr> 

这是错误的,只是看“1000后的报价。

因此,当点击文章”1000 fa“我收到”无效的意外标记“ 函数,填充s表的工作原理是这样的:

function FillArticles() 
{ 
    //--------- Request to DB -----------// 
    //--------- Parse json etc. 

    for(i=0;i<json.length;i++) 
    { 
     //----- Here goes loop to fill a table ----// 

     res.push("<tr onclick=cart_pr('"+obj.name+"')></tr>"); 

     //----- I don't show more, cause only line above is important, so.... 
     //----- below Closes the row with </tr> 
     res.push("</tr>"); 
    } 
    $("#mytable").html(res.join('')); 
    //--------- In this line in debugger, res is absolutely OK 
} 

在这种情况下该怎么办?帮助:))

+1

使用\ – Blazemonger

+0

将'obj.name'中的双引号和单引号转义出来不要添加内联事件处理程序,特别是当您已经在使用jQuery时! – JJJ

+0

不引人注意地使用javascript。避免使用onclick属性来绑定事件,而是使用'.on()' –

回答

0

我需要添加引号&#39;而不是'

res.push("<tr onclick='cart_pr(&#39;"+obj.name+"&#39;);'></tr> 

但是,这肯定是不使用有多个参数的函数时做出的表与点击行,特别是最佳方法。

最好使用.on()而不是使用JQuery而不是这种方法。