Javascript JSON.parse字符串onclick-in-line

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”)。追加(“链接”) 我尝试过使用

我使用jquery将HTML附加到ID中;具体来说,我在将JSON格式的字符串放入元素的onclick参数时遇到了问题。我有意希望JSON被解析成onClick,我完全同意在DOM中使用JSON来完成这项工作

我认为问题与正确转义引号有关(因为Chrome Inspect Elements调试显示每个JSON元素都被视为HTML标记而不是字符串——请参阅如何解释DOM的屏幕截图)

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>')