在javascript中动态创建元素和类实现

时间:2015-01-14 15:05:24

标签: javascript jquery createelement sparklines

我在使用innerHTML在javascript中动态创建元素时遇到问题。这是代码:

var newElement  = document.createElement("tr");
newElement.innerHTML = ['<td><a href="javascript:void(0);">Test Suite</a></td><td>4,977</td><td class="text-align-center">',
                      '<div class="sparkline txt-color-blue text-align-center" data-sparkline-height="22px" data-sparkline-width="90px" data-sparkline-barwidth="2">2700, 3631, 2471, 1300, 1877, 2500, 2577, 2700, 3631, 2471, 2000, 2100, 3000</div>',
            ].join('\n');

$("#locationsGraph").append(newElement);

问题是元素的创建恰到好处,但元素类没有实现。

有了这部分:

class="sparkline txt-color-blue text-align-center" data-sparkline-height="22px" data-sparkline-width="90px" data-sparkline-barwidth="2"

我应该得到一个条形图,但我会得到相同的数字列表。

是否与innerHTML中的类的实现有什么关系? 我也尝试手动创建所有元素并分配className,但结果是相同的

2 个答案:

答案 0 :(得分:1)

根据the docs,您需要运行$(newElement).find('div').sparkline()

答案 1 :(得分:0)

您没有与

匹配的结算
newElement.innerHTML = ['<td><a href="javascript:void(0);">Test Suite</a></td><td>4,977</td><td class="text-align-center">',
                      '<div class="sparkline txt-color-blue text-align-center" data-sparkline-height="22px" data-sparkline-width="90px" data-sparkline-barwidth="2">2700, 3631, 2471, 1300, 1877, 2500, 2577, 2700, 3631, 2471, 2000, 2100, 3000</div>',
          '</td>' //this is missing
  ].join('\n');