首页 > 解决方案 > 如何循环并选择附加元素以获取 .text() 和 .data() 值?

问题描述

我使用以下代码添加了一些 div 的动态和存储值:

var $element = $('<div class="draggablebox" />').text(component.children(':selected').text()).css({
  width: wbox.val() * 2,
  height: lbox.val() * 2,
  padding: '0.5em',
  border: '2px solid',
  'user-select': 'none',
  'background-color': 'gray',
  cursor: 'pointer',
  // position: 'absolute',
  // 'font-size': '',
  block: 'inline'
});
$element.attr('id', component.val());
$('#convas').append($element);

然后我尝试遍历元素以data()使用以下代码获取每个元素的值。我得到text()的 div 输出在同一个单元格中。

$('#convas').each(function(i, item) {
  var row = '<tbody> <tr>';
  row += '<td>' + $(item).text() + '</td>';
  row += '<td>' + $(item).data('l') * $(item).data('w') + '</td>';
  row += '<td>' + $(item).data('height') + '</td>';
  row += '<td>' + $(item).data('quality') + '</td>';
  row += '<td>' + $(item).data('minrate') + '</td>';
  row += '<td>' + $(item).data('maxrate') + '</td>';
  row += '<td>' + $(item).data('minTotal') + '</td>';
  row += '<td>' + $(item).data('maxTotal') + '</td>';
  row += '</tr> </tbody>';
  console.log($(item).data('l'));
  $('table#report-table').append(row);
}); 

标签: javascriptjquery

解决方案


#convas似乎是父母。我想你想遍历div你附加的元素,所以改用这个:

$('#convas .draggablebox').each(function(i, item) {
  // your code here...
});

推荐阅读