javascript - 如何在循环中使用 $.data 来正确显示每个 div

标签 javascript jquery html database webforms

当我单击 map 上的标记时,我想显示与该标记关联的数据库中的数据。目前我正在为我创建的 div 执行此操作。当我单击 div 打开其下的表单时遇到问题,我想将相同的数据加载到表单中,但目前加载到每个 for 中的唯一数据是第一个通过循环运行的数据。

换句话说,我的 field 列表 div 可能会为这个位置保存 3 个 field ,我可以单击每个 div 并在其下显示一个表单,但如果“Sally's Salon”是列表中的第一个 div,则每个表单将显示“莎莉的沙龙”而不是他们自己的名字。这是我的代码:

 // initially detach form to be attached to each div on click
 var editForm = $('.edit-container').detach();

 function fillForm(title, priority) {
   $('.venue-input').val(title);
   $('.priority-input').val(priority);
 }

for(var i = array.length -1; i>=0; i--) {
  var prop = array[i].feature.prop

  if(prop.title) {

    // create variable to hold html
    var html = $([
      "<div class='venue-item'>",
        "  <span><strong>Venue Name</strong></span>",
        "  <span class='venue-name venue-title' data-title=" + prop.title + ">" + prop.title + "</span>",
        "<span class='venue-priority' data-priority=" + prop.prioritylevel + "><strong>Priority</strong>" + ' ' + prop.prioritylevel + "</span></div>"].join("\n"));

     // append venue item to venue list div with event handler to add form and prefill when clicked
     $(html).appendTo('.venue-list').on('click', function() {
       $(this).after(editForm);
       fillForm($('.venue-title').data('title'), $('.venue-priority').data('priority'));
     });
  }

任何输入都会有帮助,我已经为此奋斗了几天,不确定我是否正确附加了 html 元素,但我主要只是希望能够单击我创建的 html 元素之一然后数据被加载到表单中,以便可以对其进行操作。

最佳答案

您要附加内容的多个副本,但是有 2 个元素使用相同的 id(venue-priorityvenue-title ) - 在网页上应该是唯一的。

此后,您使用 jQuery 来获取这些元素,但是由于 jQuery 期望 id 是唯一的,因此它只会获取具有该 Id 的第一个(或最后一个,我不确定)元素。

解决方案是不要在标记中使用重复的 ID。

关于javascript - 如何在循环中使用 $.data 来正确显示每个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38558138/

相关文章:

javascript - C 中的 ECMAScript-262 实现?

javascript - Google Apps 脚本无法为一行中的值编制索引

javascript - 拥有大DIV的字符串并使用JS将其注入(inject)html是常见的做法吗?

javascript - 是否可以删除对整个 div 的特定区域的 css 模糊效果

javascript - 一个很好的 javascript 框架,它为 IE6-8 添加了 CSS3 支持,而在 IE9 中缺少 CSS3?

javascript - 防止基于页面上现有的另一个类的默认点击操作

javascript - 倒计时一天,每天更新?

javascript - 在 Javascript 中过滤日期

Javascript - 引用错误 : agevalue is not defined

html - 在扩展图像时向下推内容时堆叠 div?