Javascript JSON.parse字符串onclick-in-line
我使用jquery将HTML附加到ID中;具体来说,我在将JSON格式的字符串放入元素的onclick参数时遇到了问题。我有意希望JSON被解析成onClick,我完全同意在DOM中使用JSON来完成这项工作 我认为问题与正确转义引号有关(因为Chrome Inspect Elements调试显示每个JSON元素都被视为HTML标记而不是字符串——请参阅如何解释DOM的屏幕截图)Javascript JSON.parse字符串onclick-in-line,javascript,jquery,json,parsing,Javascript,Jquery,Json,Parsing,我使用jquery将HTML附加到ID中;具体来说,我在将JSON格式的字符串放入元素的onclick参数时遇到了问题。我有意希望JSON被解析成onClick,我完全同意在DOM中使用JSON来完成这项工作 我认为问题与正确转义引号有关(因为Chrome Inspect Elements调试显示每个JSON元素都被视为HTML标记而不是字符串——请参阅如何解释DOM的屏幕截图) var str='{“艺术家”:“某某”,“标题”:“不相关”}; $(“#d”)。追加(“链接”) 我尝试过使用
var str='{“艺术家”:“某某”,“标题”:“不相关”};
$(“#d”)。追加(“- 链接
”)
我尝试过使用许多转义机制和引号类型,以及一些本机Javascript转义,但没有得到任何结果。两个小时后,我不得不如此求助。非常感谢您。不要尝试使用内联属性分配处理程序-这与
eval
一样糟糕,而且正如您所经历的,可能会导致转义字符混淆问题。相反,请使用Javascript正确附加处理程序,例如:
var str='{“艺术家”:“某某”,“标题”:“不相关”};
$('div')。追加('ul>链接 ');
$('diva')。在('click',()=>console.log(JSON.parse(str))代码>
不要尝试使用内联属性分配处理程序-这和eval
一样糟糕,而且正如您所经历的,可能会导致转义字符混淆问题。相反,请使用Javascript正确附加处理程序,例如:
var str='{“艺术家”:“某某”,“标题”:“不相关”};
$('div')。追加('ul>链接 ');
$('diva')。在('click',()=>console.log(JSON.parse(str))代码>
试试这个:
var str='{“艺术家”:“某某”,“标题”:“不相关”};
var jsonObj=JSON.parse(str);
$(“#d”)。追加(“- 链接”
”)代码>
试试这个:
var str='{“艺术家”:“某某”,“标题”:“不相关”};
var jsonObj=JSON.parse(str);
$(“#d”)。追加(“- 链接”
”)代码>
将JSON放在onClick中真正想要实现什么?现在我没有任何意义。将JSON放在onClick中真正想要实现什么?现在我没有任何意义。感谢您的快速回复!也许我没有提供足够的背景来解决我真正的问题。以上内容将是有效的,但当我编写更新的HTML时,我正处于一个循环中,所以每个<代码>点击< /Cord>事件将需要对抗一个唯一的div。而且,我可以让它以适当的格式登录到控制台,但是当注入DOM时,它就开始认为JSON键/值对实际上是HTML元素。(我认为捕捉onClick
的结束语太早了)。有关真实代码,请参阅。JSON是可信的(用户无法更改/注入)。希望您能提供帮助!这只是一个例子-如果您有多个a
s,那么当然您必须使选择器更具体,例如将最后一个a
作为目标,或者在附加它之前为a
创建一个单独的变量。如果代码与您的问题相关,请将其发布在您的问题中elf(请参见如何询问页面)谢谢你的快速回复!也许我没有给出足够的上下文来解决我的真实问题。上面的内容是可行的,但是我在写更新的HTML时正处于一个循环中,所以每一个<代码>点击< /代码>事件都需要对抗一个独特的div。OM,这就是它开始认为json键/值对实际上是HTML元素的地方(我认为捕捉onClick
的结束引号太早了)。有关真实代码,请参阅。json是可信的(用户无法更改/注入)。希望您能提供帮助!这只是一个例子-如果您有多个a
s,那么当然您必须使选择器更具体,例如将最后一个a
作为目标,或者在附加它之前为a
创建一个单独的变量。如果代码与您的问题相关,请将其发布在您的问题中elf(请参阅如何提问页面)非常感谢您对我已经/曾经的问题的迟到但直接的回答。非常感谢!非常感谢您对我已经/曾经的问题的迟到但直接的回答。非常感谢!
var str = '{"artist":"So and So","title":"Not Relevant"}';
$("#d").append('<ul><li><a onclick="JSON.parse(\'' + str + '\')" title="NA">Link</a></li></ul>')