javascript - Jquery:在解析 JSON 时添加到动态创建的 <li> 的 onclick 事件在单击时出错

标签 javascript jquery html

我正在对 JSON 数据进行 ajax get 调用,并通过动态创建 li 元素来显示列表。

JSON 数据的格式是:

[
  {"name":"Obj1", "id":"1"},
  {"name":"Obj2", "id":"2"},
  {"name":"Obj3", "id":"3"},
  ......
]

我附加 li 的 html 是:

<div id="lists">
  <ul id="bullets"></ul>
</div>

我正在尝试在 li 上创建一个 onclick 事件,它调用一个采用 JSON Obj: id 的函数。我是这样做的:

$.ajax({ 
  type: 'GET', 
  url: URL, 
  data: { get_param: 'value' }, 
  success: function (data) { 
    $.each(data.slice(2), function(index, element) {

        $('#bullets').append('<li id="demo" onclick="loadCards(\"' + element.id + '\")">' + element.name + '</li>');

    });
  }
});

现在,这会正确显示列表,但是当我单击名称时,出现此错误:

Uncaught SyntaxError: Unexpected end of input:  loadCards(

生成的 HTML 如下所示:

<li id="demo" onclick="loadCards(" 1")"="">PB Dashboard</li>

1 是上述 JSON 中的对象 ID,但我不确定为什么是这个 html?无法解决这个问题。

有没有办法在li中添加anchor标签,然后执行点击?

最佳答案

尝试使用这个

$('#bullets').append('<li id="demo" onclick="loadCards(\'' + element.id + '\')">' + element.name + '</li>');

以此为例 fiddle :

关于javascript - Jquery:在解析 JSON 时添加到动态创建的 <li> 的 onclick 事件在单击时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51827252/

相关文章:

jquery - 我想在 razor 中循环遍历我的模型列表以填充 jquery 列

javascript - 如何使用 JQuery 替换 CSS 背景图片并保持渐变?

javascript - 从 HTML 和 Javascript 文件读取 Access 数据库记录

javascript - 为什么这个简单的正则表达式除了 html5 输入模式属性之外在任何地方都可以工作?

javascript - jQuery 和 Chrome 扩展

javascript - 使用 JavaScript 控制特定电子邮件模式

jquery - 我需要在 asp.net 中屏蔽文本框

javascript - 如何使用 json 数据在 d3.js 中创建垂直分组的条形图?

javascript - Ember.js 有很多关系在渲染前未解析

javascript - 当子 iframe 获得焦点时,防止文档丢失键绑定(bind)