javascript - 在 td 内追加 div 并设置值?

标签 javascript jquery html append

我有多个表需要填充。我使用 jQuery 循环遍历表格单元格。如果表格单元格具有 data-text 属性,我需要 append div 元素。 Div 元素将允许单元格具有垂直滚动条。如果文本太长,这种方式表不会扩展。

这是我的代码示例:

$('#'+tabID+' table tr td').each(function(){
  elementID = $(this).prop('id').toUpperCase();
  value = $.trim(decodeURIComponent(obj.DATA[elementID]['value']));

  if($(this).attr('data-text')) {
    $(this).append('<div class="hm_textScroll">'+value+'</div>');
  } else {
    $(this).text(value).css({'color':'blue','font-weight':'bold'});
  }
});

上面的代码将追加 div 元素并设置值,但问题是如果我移动到另一个表并再次返回,将追加一个 div。这会产生重复。我不确定防止这种情况的最佳方法是什么?或者是否有更好的方法来解决此问题。如果有人有任何建议,请告诉我。

提前致谢。

最佳答案

给你一个解决方案

$('#' + tabID + ' table tr').each(function(){
  $(this).find('td').each(function(){
    elementID = $(this).prop('id').toUpperCase();
    value = $.trim(decodeURIComponent(obj.DATA[elementID]['value']));

    if(typeof $(this).attr('data-text') != 'undefined') {
      if($(this).find('div.hm_textScroll').length > 0){
        $(this).find('div.hm_textScroll').text(value);
       } else {
        $(this).append(`<div class="hm_textScroll">${value}</div>`);
       }       
    } else {
      $(this).text(value).css({'color':'blue','font-weight':'bold'});
    }
  });
});

首先循环遍历每个 tr 然后循环遍历每个 td

要检查 data-attribute,请使用 typeof $(this).attr('data-text') != 'undefined

在 if 语句(真条件)中,我使用了反引号 ES6 来 append div 容器。

希望对您有所帮助。

关于javascript - 在 td 内追加 div 并设置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46080295/

相关文章:

html - 可能是一个相当简单的 CSS 问题

php - 页眉不跨越整个页面

javascript - 如何在 DOM 更改后检查元素是否为空?

javascript - Gridsome 项目托管在 netlify 上。点击时,即使 URL 更新,页面也不会加载

Javascript格式化日期数组

javascript - 当我单击添加行按钮时,如何动态地将行添加到 html 中的表单?

javascript - jqGrid:未定义不是函数

javascript - 将今天的日期与日期列表进行比较

Javascript For ... of 数组中的循环在 Safari 5.1.7 中不起作用

php - 从另一页上的特定表格单元格中选择文本?